国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL SERVER 統計信息概述(Statistics)

2024-08-31 00:54:19
字體:
來源:轉載
供稿:網友
SQL SERVER 統計信息概述(Statistics)前言

查詢優化器使用統計信息來創建可提高查詢性能的查詢計劃,對于大多數查詢,查詢優化器已經為高質量查詢計劃生成必要的統計信息,但是在少數情況下,您需要創建附加的統計信息或者修改查詢設計以得到最佳結果。因此理解和合理使用統計信息是數據庫優化的方式之一。

 

統計信息的分類

根據創建源的不同,統計信息分為兩種表統計信息和索引統計信息,除非你自定義它們,否則它們之間沒有本質的區別。

索引統計信息建立在索引上面,因此對于創建已經存在的數據上,在創建索引的時候會掃描全部數據,這些數據也會創建在索引的統計信息上。

表的統計信息創建在列上面。對于已經存在的數據表上面,需要對某些列使用過濾方法(比如 WHERE,JOIN-ON),會在上面自動建立統計信息。只是它們使用采樣數據而不是全部數據。

 

統計信息的存儲

統計信息存儲在一系列的系統表中,比如Sysindex,你可以通過系統視圖sys.stats 和 Sys.index來查看部分信息。但是詳細的信息可以通過系統函數DBCC SHOW_STATISTICS來查看。統計信息本身占用很少的磁盤空間,所以不需要關注是否刪除不必要的統計信息來釋放更多的磁盤空間。

 

怎樣查看統計信息的更新時間

DBCC SHOW_STATISTICS

語法
DBCC SHOW_STATISTICS ( table_or_indexed_view_name , target ) [ WITH [ NO_INFOMSGS ] < option > [ , n ] ]< option > :: =     STAT_HEADER | DENSITY_VECTOR | HISTOGRAM | STATS_STREAM
參數

table_or_indexed_view_name

要顯示其統計信息的表或索引視圖的名稱。

target

要顯示其統計信息的索引、統計信息或列的名稱。 如果 target 是表或索引視圖的現有索引或統計信息的名稱,則返回有關此目標的統計信息。 如果 target 是現有列的名稱,且此列中存在自動創建的統計信息,則返回有關該自動創建的統計信息的信息。 如果列目標中不存在自動創建的統計信息,則返回錯誤消息 2767。

NO_INFOMSGS

取消嚴重級別從 0 到 10 的所有信息性消息。

STAT_HEADER | DENSITY_VECTOR | HISTOGRAM | STATS_STREAM [ ,n ]

如果指定以上一個或多個選項,將根據指定的選項限制該語句返回的結果集。 如果沒有指定任何選項,則返回所有統計信息。

實例

下面的示例顯示 AdventureWorks2012 數據庫中 Person.Address 表的 AK_Address_rowguid 索引的所有統計信息

DBCC SHOW_STATISTICS ("Person.Address", AK_Address_rowguid);

下面的示例將為 AK_Address_rowguid索引顯示的統計信息限制為 HISTOGRAM 數據。

DBCC SHOW_STATISTICS ("Person.Address", AK_Address_rowguid) WITH HISTOGRAM;

 

什么時候需要維護統計信息
  • 查詢執行時間很長
  • 在升序或者是降序鍵列上發生插入操作
  • Truncate 表或者對表大部分列進行大容量的插入后

 

怎樣維護統計信息

SQL Server 提供兩個基本的命令來更新統計信息

  • sp_updatestats
  • update statistics

在后續的文章中將講述這2個命令的區別和使用方法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦山县| 平泉县| 汝城县| 宁明县| 清流县| 正安县| 宜丰县| 河东区| 鄂托克前旗| 谷城县| 肇源县| 双牌县| 云南省| 鱼台县| 瑞丽市| 成都市| 陆丰市| 中阳县| 普安县| 中牟县| 昂仁县| 万州区| 苏尼特左旗| 姚安县| 沭阳县| 化州市| 易门县| 德钦县| 英山县| 荣昌县| 五常市| 封开县| 塔河县| 隆林| 石河子市| 牙克石市| 游戏| 四会市| 巴中市| 景谷| 探索|