您的位置:首页 > 数据库

MSSQL 笔记二

2012-10-21 21:43 162 查看
sql分享 sql笔记

---查询索引操作的信息

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

来自:http://52mvc.com/showtopic-567.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: