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