首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL Server 億級資料表索引設計:基於選擇性的複合索引策略

     編輯:程式設計綜合問答

資料特徵

  • 2 億列,欄位:row, col, X, Y, BX, BY。
  • 查詢模式:(row, col)、(X, Y)、(BX, BY) 三組常用組合。

選擇性計算


SELECT
    COUNT(DISTINCT row) * 1.0 / COUNT(*) AS row_sel,
    COUNT(DISTINCT col) * 1.0 / COUNT(*) AS col_sel,
    COUNT(DISTINCT X) * 1.0 / COUNT(*) AS X_sel,
    -- ...
FROM GridPoint_0;

選擇性越高(接近 1),該欄位越適合作為索引前導欄位。

建議索引

  1. CREATE INDEX IX_row_col ON GridPoint_0(row, col); — 若 row 選擇性高。
  2. CREATE INDEX IX_X_Y ON GridPoint_0(X, Y);
  3. CREATE INDEX IX_BX_BY ON GridPoint_0(BX, BY);

進階

  • 若三組查詢頻率相近,可建立三個複合索引;若某組極高頻,優先建立該組。
  • 考慮**分區表**(按 row 範圍)配合索引,減少掃描範圍。
  • 定期 UPDATE STATISTICS 確保查詢優化器有最新統計資訊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved