ID 欄位但無主鍵,Category 欄位建有非叢集索引WHERE Category LIKE '%醫學%' (前導萬用字元,索引無法 Seek)| 方法 | T-SQL 範例 | 執行時間 (ms) | 備註 |
|---|---|---|---|
| 直接查詢 | SELECT Title FROM Books WHERE Category LIKE '%醫學%' | ~1,100 | 非叢集索引略優於叢集索引 |
| 使用者定義函數 | SELECT Title FROM dbo.gethl('醫學') | 1,150~1,200 | 函數呼叫額外開銷 |
| 預存程序 | EXEC getfl '醫學' | ~1,100 | 與直接查詢相近 |
| 檢視表 | SELECT Title FROM View1 | ~1,100 | 展開後同直接查詢 |
LIKE '%...%' 導致全索引掃描 (Index Scan)FULLTEXT INDEX + CONTAINS/FREETEXTKeyword (kw, book_id),查詢轉為 JOIN + WHERE kw = '醫學' (可 Seek)% 移除 (如 LIKE '醫學%') 才能用到索引 Seek