sql 查詢效率

iSQlServer發表於2010-08-27

一個百萬級別的基本資訊表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毫秒級

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-671989/,如需轉載,請註明出處,否則將追究法律責任。

相關文章