当前位置: 代码迷 >> Informix >> informix怎么通过条件选出指定条数的数据
  详细解决方案

informix怎么通过条件选出指定条数的数据

热度:8435   发布时间:2013-02-26 00:00:00.0
informix如何通过条件选出指定条数的数据?
我这里要的数据量非常大,为了方便处理,像一次读出指定条数的数据,请问如何通过条件来做呢? 
请教各位高手!

------解决方案--------------------------------------------------------
最好写存储过程。
建议:1,首先根据条件把所有的key检索出来。一般来说这些key都是索引的。
2,循环key中的数据,分好页(比如第二页,每页10条),把第二页的所有key拿出来。3,根据key检索详细信息,这里你可以这样写sql,(select xx,yyy from zzz where (key=key1 or key = key2 or... key = key10) and ...)

------解决方案--------------------------------------------------------
“这样做会不会还是要全部读一次表。“
确实,不管你怎么做,它都要扫描。如果数据量非常大,建议用数据分割的方式来提高效率。数据分割就是将某一表的数据根据一定的条件放入不同的 dbspace ,若这些不同的dbspace 在不同的物理盘上效果会更好 。
另外,你的sql语句也要注意,最好加上有索引列的检索,避免全表扫描。尽可能不用substr之类的函数。

------解决方案--------------------------------------------------------
Informix7.3以上版本可以在select语句执行时有first来指定返回头若干行。

如果你的表上某个列是唯一索引,你可以该列的值来划分表,否则用rowid也可。

  相关解决方案