我已經找到了我的自我在一個泡菜。我只有一列(壓縮或包含列表)的表或多或少varchar(25),但事情是我沒有時間索引它們,然後在主查詢中使用它們,並且取決於它的重要性,我不知道每個表中有多少行。所有這些核心的基礎表大約有140萬行和50列。舊IN與存在與左連接(哪裏___是或不是無);表現
我的假設如下:
IN shouln't的情況下有很多的值(行)可用於返回,因爲它看起來雖然連續的值,對不對? (IN上的子查詢不直接傳遞的值)
聯接(INNER列入和LEFT和檢查空值時supression)是最好的大型數據集(超過1K行左右馬赫)
EXISTS一直關注我,因爲它似乎在爲每一行做一個子查詢(全部140萬?喲)。
我的直覺告訴我們,如果可行的話,得到壓縮表的計數並且使用IN(對於子1k行)和INNER/LEFT聯接(對於1k行以上的抑制表)注意,我將被抑制的字段將是大型基表中的索引,但是抑制表不會是。思考?
在此先感謝您提供任何意見和/或建議。
+1良好的指標,以支持結論。 – Thomas 2010-08-30 20:46:29
@Thomas:thx,提醒我推動Quassnoi解決當列可以爲空時最好的地址... – 2010-08-30 21:01:51