全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1668
推到 Plurk!
推到 Facebook!

在MS SQL中seek 與 scan的使用該如何指定啊??

尚未結案
chimera
初階會員


發表:62
回覆:78
積分:28
註冊:2003-03-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-15 22:48:12 IP:211.76.xxx.xxx 未訂閱
不太清楚要如何讓MS SQL搜尋資料時是以seek去搜尋,或是以scan去搜尋?? 又要如何讓MS SQL組合seek與scan去最佳化搜尋資料的方式??
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-19 20:37:10 IP:192.168.xxx.xxx 未訂閱
引言: 不太清楚要如何讓MS SQL搜尋資料時是以seek去搜尋,或是以scan去搜尋?? 又要如何讓MS SQL組合seek與scan去最佳化搜尋資料的方式??
您是要問如何設定index的組合嗎? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-20 10:23:59 IP:203.95.xxx.xxx 未訂閱
簡單的說明一下 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-20 20:35:13 IP:211.76.xxx.xxx 未訂閱
引言: 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好像會統計數字後,自動找出最佳搜尋方法
系統時間:2024-05-19 16:11:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!