0
我使用SQL Server 2008中,和我有兩個表爲什麼兩個查詢之間的性能差異?
表1
包含350萬條記錄
+----+-------------+
| pk | dim1 |
+----+-------------+
indexing applied on column **pk**
表2
含有15萬條記錄
+----+-------------+
| fk | fact1 |
+----+-------------+
indexing applied on column **fk**
我跑這些表2個查詢來獲得t2.fact1
查詢1
SELECT t2.fact1
FROM Table1 AS t1, Table2 AS t2
WHERE t2.fk = t1.pk
QUERY2
SELECT t2.fact1
FROM Table1
WHERE t2.fk IN (SELECT t1.pk FROM Table1 AS t1)
那得到的是查詢1把7 secs
而QUERY2了6 secs
雖然我在一些博客中讀到的內容類似於如上所述在查詢中使用IN
,但會降低查詢速度。
問題1:有人可以提出爲什麼Query2更快?
在同一張表上的另一個實驗中(當應用NO INDEXING時),我運行了上面的查詢,再次查詢2比Query1快,遺憾的是不記得它的時間。
問題2:有人可以提出爲什麼Query2更快?
1)是一些什麼新的東西是無法解釋的執行計劃,可以請指導我。 2)跑了好幾次,但結果是類似的。 3)什麼是DBCC DROPCLEANBUFFERS,請指導,會喜歡去探索這些東西 4)JOIN如何影響 但一般情況下哪個查詢應該是FASTER? – 2010-07-31 12:10:22
即將在一天或2將再次發佈新的統計數據,希望你會回覆。 – 2010-08-01 09:17:33