比方說,我們有
SELECT * FROM A INNER JOIN B ON [....]
內連接與連接表,其中
假設A
有兩行和B
包含1M行包括2行鏈接到A
:
B
將只有一次與「實際掃描2行右側的「#行」?
如果我在表B
添加WHERE
:
SELECT * FROM A INNER JOIN B ON [....] WHERE B.Xyz > 10
的WHERE
實際上在加入之前執行......所以,如果在那裏 返回1000行,在中B
「行的實際#」將1000 ... 我不明白它..不應該是< = 2 ???
我在想什麼......爲什麼優化器會以這種方式進行? (SQL 2008)
感謝
我認爲這是因爲表A包含比B更多的行..有可能嗎?我沒有提到A有很多行,我在其上做了一個WHERE – 2009-09-11 16:43:26