------------我的一些筆記(基於SQL 2005)(統計信息的一些筆記)------------

---查詢索引操作的信息
select * from sys.dm_db_index_usage_stats

--查詢指定表的統計信息(sys.stats和sysobjects聯合查詢)
select
  o.name,--表名
  s.name,--統計信息的名稱
  auto_created,--統計信息是否由查詢處理器自動創建
  user_created--統計信息是否由用戶顯示創建
from
  sys.stats
inner join
  sysobjects o
on
  s.object_id=o.id
where
  o.name='表名'
go


--查看統計信息中列的信息
select
  o.name,--表名
  s.name,--統計信息的名稱
  sc.stats_column_id,
  c.name---列名
from
  sys.stats_columns sc
inner join
  sysobjects o
on
  sc.object_id=o.id
inner join
  sys.stats s
on
  sc.stats_id=s.stats_id and sc.object_id=s.object_id
inner join
  sys.columns c
on
  sc.column_id=c.column_id and sc.object_id=c.object_id
where
  o.name='表名'

--查看統計信息的明細信息
dbcc show_statistics

--查看索引自動創建的統計信息
exec sp_autostats '對象名'

--關閉自動生成統計信息的數據庫選項
alter datebase 數據庫名 set auto_create_statistics off

--創建統計信息
create statistics 統計信息名稱 on 表名(列名)
[with
 [[fullscan
   sample number{percent|rows}]
 [norecompute]
]
go
解釋一下上面的參數:
fullscan:指定對錶或視圖中所有的行收集統計信息
sample number{percent|rows}:指定隨機抽樣應讀取的數據行數或者百分比 sample選項不能與fullscan選項同時使用
norecompute:指定數據庫引擎不自動重新計算統計信息

--計算隨機抽樣統計信息
create statistics 統計信息名稱 on 表名(列名)
with sample 5 percent---創建統計信息,按5%計算隨機抽樣統計信息
go

--創建統計信息
exec sp_createstats--參數自己去查下幫助,在這裏不一一列舉

--修改統計信息
update statistics 表名|視圖名
    索引名|統計信息名,索引名|統計信息名,.....
[with
 [[fullscan
   sample number{percent|rows}]
 [norecompute]
]
---參數與create statistics 語句相似,下面介紹幾種常用應用
1.更新指定表的所有統計信息
update statistics 表名

2.更新指定表的單個索引的統計信息
update statistics 表名 索引名

3.對錶進行全面掃描,更新統計信息
update statistics 表名(列名) with fullscan

 

 

發佈了111 篇原創文章 · 獲贊 13 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章