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

SQL Server 2000 查詢優化器統計資訊深度解析

     編輯:關於SqlServer

優化器依賴統計資訊生成高效計畫。SQL Server 2000 自動建立/更新統計,亦可手動控制。

統計物件結構

  • 儲存在 sysindexes 列:rows(行數)、dpages(頁數)、statblob(直方圖、密度、上次更新時間、取樣行數、平均鍵長)。
  • 單欄統計含直方圖(最多 200 步,每步存 RANGE_HI_KEY、EQ_ROWS、RANGE_ROWS、DISTINCT_RANGE_ROWS、AVG_RANGE_ROWS)。
  • 多欄統計:第一欄有直方圖,所有前綴組合有密度值。

直方圖生成三步驟

  1. 掃描取樣,收集最多 200 個 RANGE_HI_KEY 等值。
  2. 處理其餘值:插入現有區間或建立新區間;若超 200 步,合併密度最接近的相鄰區間。
  3. 進一步合併密度相近區間,最終步數可能 < 200。

密度與選擇率估算

密度 = 1 / 不重複值數。等值謂詞用密度估算;範圍謂詞用直方圖。DBCC SHOW_STATISTICS 首行密度優化器不使用。

自動/手動控制

  • 資料庫/表/索引層級可關閉 AUTO_CREATE_STATISTICS、AUTO_UPDATE_STATISTICS。
  • CREATE STATISTICS 預設取樣;CREATE INDEX 掃全表。
  • sp_helpindex/sp_helpstats 列出現有統計。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved