加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver的statistics操作语句

发布时间:2020-12-12 13:59:41 所属栏目:MsSql教程 来源:网络整理
导读:---查询索引操作的信息 select * from sys.dm_db_index_usage_stats ? --查询指定表的统计信息(sys.stats和sysobjects联合查询) select o.name,--表名 s.name,--统计信息的名称 auto_created,--统计信息是否由查询处理器自动创建 user_created--统计信息是否
---查询索引操作的信息
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读