首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 查詢優化三大實戰技巧 (1/2)

     編輯:關於SqlServer

技巧一:Access 欄位含日文片假名導致記憶體溢出

問題:WHERE col LIKE '%...%' 查詢含特殊字元欄位時記憶體溢出。
解法:改用 Recordset.Filter:

sql = "SELECT * FROM ada";
rs.Open sql, conn;
rs.Filter = "alice LIKE '%" & abigale & "%'";

技巧二:類百度多關鍵字查詢實作

以空格分割關鍵字,動態建構 AND 條件:

ck = Split(abigale, " ")
sql = "SELECT * FROM ada WHERE "
For i = 0 To UBound(ck)
    sql = sql & IIf(i=0, "", " AND ") & "(alice LIKE '" & ck(i) & "%')"
Next
' 多欄位同時查詢
sql = sql & IIf(i=0, "", " AND ") & "(alice LIKE '" & ck(i) & "%' OR alice1 LIKE '" & ck(i) & "%')"

技巧三:提升查詢效率核心原則

  1. 避免 OR → 導致全表掃描。
  2. CHARINDEX() 不優於 LIKE '...%',且會使索引失效(SQL Server)。
  3. LIKE '%...%' 失效索引;LIKE '...%' 生效索引(去掉前置 %)。
  4. 前置 % 匹配任意位置;無前置 % 僅匹配開頭。
  5. 欄位按需提取,避免 SELECT *,每減少一欄位即有速度提升。
  6. ORDER BY 叢集索引欄位效率最高(每表僅一叢集索引,預設為 ID)。
  7. 建立適當索引可提速數十至數百倍。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved