微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver的statistics操作语句

---查询索引操作的信息
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,--统计信息的名称
  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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐