sqlserver 多表聯系關系時在where語句中慎用trim()辦法。本站提示廣大學習愛好者:(sqlserver 多表聯系關系時在where語句中慎用trim()辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是sqlserver 多表聯系關系時在where語句中慎用trim()辦法正文
相似以下:
select A.key,B.key,C.key from A,B,C where trim(A.key)=trim(B.fk) and trim(A.col)=trim(C.pk)。
在主表A(200多筆記錄)聯系關系附表B(4萬多筆記錄)時用了1秒鐘時光,該值在分歧機械履行能夠有所差別,但比不加trim速度略微慢一些,然則不是特殊顯著。
其sql語句相似以下:
select A.key,B.key from A,B where trim(A.key)=trim(B.fk)
然則,在下面sql語句中參加第三個表C(兩筆記錄)後,Sql語句以下:
select A.key,B.key,C.key from A,B,C where trim(A.key)=trim(B.fk) and trim(A.col)=trim(C.pk)
全部sql語句履行了差不多70多秒鐘。比不加trim()辦法多發費了60奪秒。
後來,經由過程若干試驗發明這類where中多表聯系關系前提,假如不在右邊聯系關系前提處加trim()辦法便可到達根本同等於普通多表聯系關系的效力。
改進後的sql語句以下:
select A.key,B.key,C.key from A,B,C where A.key=trim(B.fk) and A.col=trim(C.pk)
此條sql語句履行效力根本同等於where語句中無trim()的sql語句速度了。