首页 > 数据库 >SQLServer常用SQL脚本

SQLServer常用SQL脚本

时间:2022-10-19 11:01:33浏览次数:47  
标签:脚本 SQLServer 扫描 页数 碎片 盘区 SQL DBCC id

SQLServer系统表查询 

select name from syscolumns where id = object_id('表名')

SELECT * FROM SysObjects Where XType='U'

SELECT Name FROM SysObjects Where XType='U' ORDER BY Name

Select Name FROM SysColumns Where id=Object_Id('表名')

select id from dbo.sysobjects where name in ('表名')

--获取数据库中各表的列数
select p.schemaName,p.tablename,count(colName) as colCount from
(
select
s.[name] as schemaName, t.[name] as tablename,t.object_id as tableId,c.name as colName
from sys.tables as t
inner join sys.schemas as s on t.schema_id = s.schema_id
inner join SysColumns c on c.id = t.object_id
) p group by p.schemaName,p.tablename
order by count(colName) desc

--获取数据库各表的行数
select
schema_name(t.schema_id) as [Schema], t.name as TableName,i.rows as [RowCount]
from sys.tables as t
inner join sysindexes as i
on t.object_id = i.id
where i.indid <=1
order by i.rows desc

select * from sysindexes

 

执行计划查询和设置:

DBCC DROPCLEANBUFFERS  --清除缓冲区
DBCC FREEPROCCACHE  --删除计划高速缓存中的元素

SET STATISTICS TIME ON --执行时间
SET STATISTICS IO ON --IO读取

 

SQLServer 数据库运维常用脚本-索引相关:

--显示所有表的索引碎片
DBCC SHOWCONTIG WITH ALL_INDEXES

--显示某张表的索引碎片信息
DBCC SHOWCONTIG('Workflow.tbl_ProcInst')


--重建该表的索引,该操作会删除原有聚集索引并重建它和对应的其他索引,较大的表可能会有一定时间的耗时(要小心,最好在无人使用时执行)
DBCC DBREINDEX('Workflow.tbl_ProcInst','','90')


DBCC SHOWCONTIG将返回扫描页数、扫描扩展盘区数、遍历索引或表的页时,DBCC 语句从一个扩展盘区移动到其它扩展盘区的次数、每个扩展盘区的页数、扫描密度(最佳值是指在一切都连续地链接的情况下,扩展盘区更改的理想数目)。

DBCC SHOWCONTIG 正在扫描 'authors' 表...
表: 'authors'(1977058079);
索引 ID: 1,数据库 ID: 5
已执行 TABLE 级别的扫描。
- 扫描页数.....................................: 1
- 扫描扩展盘区数...............................: 1
- 扩展盘区开关数...............................: 0
- 每个扩展盘区上的平均页数.....................: 1.0
- 扫描密度[最佳值:实际值]....................: 100.00%[1:1]
- 逻辑扫描碎片.................................: 0.00%
- 扩展盘区扫描碎片.............................: 0.00%
- 每页上的平均可用字节数.......................: 6010.0
- 平均页密度(完整)...........................: 25.75%

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。



说明:

扫描页数:如果你知道行的近似尺寸和表或索引里的行数,那么你可以估计出索引里的页数。看看扫描页数,如果明显比你估计的页数要高,说明存在内部碎片。

扫描扩展盘区数:用扫描页数除以8,四舍五入到下一个最高值。该值应该和DBCC SHOWCONTIG返回的扫描扩展盘区数一致。如果DBCC SHOWCONTIG返回的数高,说明存在外部碎片。碎片的严重程度依赖于刚才显示的值比估计值高多少。

扩展盘区开关数:该数应该等于扫描扩展盘区数减1。高了则说明有外部碎片。

每个扩展盘区上的平均页数:该数是扫描页数除以扫描扩展盘区数,一般是8。小于8说明有外部碎片。

扫描密度[最佳值:实际值]:DBCC SHOWCONTIG返回最有用的一个百分比。这是扩展盘区的最佳值和实际值的比率。该百分比应该尽可能靠近100%。低了则说明有外部碎片。

逻辑扫描碎片:无序页的百分比。该百分比应该在0%到10%之间,高了则说明有外部碎片。

扩展盘区扫描碎片:无序扩展盘区在扫描索引叶级页中所占的百分比。该百分比应该是0%,高了则说明有外部碎片。

每页上的平均可用字节数:所扫描的页上的平均可用字节数。越高说明有内部碎片,不过在你用这个数字决定是否有内部碎片之前,应该考虑fill factor(填充因子)。

平均页密度(完整):每页上的平均可用字节数的百分比的相反数。低的百分比说明有内部碎片。 

 

标签:脚本,SQLServer,扫描,页数,碎片,盘区,SQL,DBCC,id
From: https://www.cnblogs.com/microsoft-xin/p/16805476.html

相关文章

  • MySQL的日志文件
    本文将重点介绍MySQL的日志文件类型,并讲解其作用,并结合一定实操演示,相信跟着做下来你会对MySQL有更深的理解。文件的概念在开始讲MySQL日志文件之前,首先我们要明确一下文......
  • 一文全搞懂postgresql的权限
    权限结构图pg中权限至上而下层次分明,首先要了解pg的逻辑架构,如下图需要注意的是在如上架构中数据库是严格分开的,这意味着不能同时使用两个不同的数据库,而模式不是严格分开的......
  • MySQL与Redis缓存的同步方案
    本文介绍MySQL与Redis缓存的同步的两种方案通过MySQL自动同步刷新Redis,MySQL触发器+UDF函数实现解析MySQL的binlog实现,将数据库中的数据同步到Redis一、方案1(UDF)场景......
  • 使用DataX将oracle中的数据同步到MySQL
    1.环境准备(1).在oracle上创建表及数据createtableORACLE_DATAX1(user_codeVARCHAR2(20)notnull,user_nameVARCHAR2(50));insertintoORACLE_DATAX1(user_code,......
  • windows下mysql安装(5.6版本)
    1.到mysql官网下载mysql压缩包下载页面:https://downloads.mysql.com/archives/community/2.将压缩包解压到要安装的位置,将bin文件夹添加到环境变量3.如果要将mysql......
  • Dinky的使用——orc2mysql
    需求:将orc格式的数据文件同步数据到mysql数据库由于orc格式的文件不能直接通过文本编辑器打开,也不是说简单的通过记事本写入一些数据,把扩展名改成orc就可以了为了生成标......
  • python 脚本实现bugly自动上传符号文件
    bugly更新之后,符号文件不再支持拖拽或者选择文件的方式上传了,官方提供了一个上传的工具包,通过buglyqq-upload-symbol.jar实现上传,每次上架app都需要手动去配置相关参数和组......
  • 使用sqlyog连接 Mysql 出现1251错误
    声明:此文为转载内容,原作者地址:https://blog.csdn.net/weixin_44901190/article/details/1254139251.报错内容1251clientdoesnotsupportauthenticationprotocolreq......
  • centos 7 安装mysql 5.7失败 出现 Retrieving key from file:///etc/pki/rpm-gpg/RPM-
    Publickeyformysql-community-common-5.7.40-1.el7.x86_64.rpmisnotinstalled(1/5):mysql-community-common-5.7.40-1.el7.x86_64.rpm|311kB00:01......
  • MySQL 错误码: 1067Invalid default value for ‘xxx‘问题解决
    声明,此文为转载内容,原作者地址为:https://blog.csdn.net/qq_38974638/article/details/1223005381.问题描述:错误码:1067Invaliddefaultvaluefor'gmt_create......