在MS SQL中seek 與 scan的使用該如何指定啊?? |
尚未結案
|
chimera
初階會員 發表:62 回覆:78 積分:28 註冊:2003-03-22 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
簡單的說明一下 seek 和 scan 的差異性. seek 發生在 index 之上才有可能, 相對於 seek, scan 會發生在 index 或非 index 上都會有可能. seek 能快速地指出該筆資料, 使用了 index 中的定位方式, 若是沒有 index 的時候, 若是需要找出特定條件時, 則會使用 scan 的方式來取得資料, 記得速度的差異為: index seek > index scan > table scan 也就是在 where 子句中會使用的條件, 以 index seek 的效能最佳, index scan 次之, table scan 為最差的搜尋法.
|
chimera
初階會員 發表:62 回覆:78 積分:28 註冊:2003-03-22 發送簡訊給我 |
引言: index seek > index scan > table scan 也就是在 where 子句中會使用的條件, 以 index seek 的效能最佳, index scan 次之, table scan 為最差的搜尋法.不過,好像如果總資料有10000筆, 用where x <= a可以搜尋到9000筆, 而where x > a可以搜尋到1000筆時, 在where x <= a的情況下table scan會比較快的樣子, 所以index scan要在高選擇性的情況下(where x > a)才會比較快的樣子, 因為上了SQL效能調校的才發現,之前完全沒有這方面的概念,所以才有這問題的, 不過MS SQL好像會統計數字後,自動找出最佳搜尋方法 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |