sql 查询效率

一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。

S1:select B.* from A inner join B on A.id=B.id.

S2:游标遍历A表,更具ID找出B表中的记录,再插入的一张临时表里。

实验结果:S2的时间效率要远大于S1,至少100倍以上。

对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接查询百万条数据;如果再对每条记录做处理,耗时将更长。

没有万能的工具,只有最合适的工具。为结果找最合适的方法、工具-sql server。

 

续:

S3:select B.* from B where EXISTS(select 1 from A where id=B.id)

该方案比S1稍微,弱100毫秒级

posted @ 2010-08-25 21:21  求吾  阅读(442)  评论(0编辑  收藏  举报