首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Informix >

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

2012-02-28 
informix如何通过条件选出指定条数的数据?我这里要的数据量非常大,为了方便处理,像一次读出指定条数的数据

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也可。

热点排行