SQLServer常用SQL脚本

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(填充因子)。

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

 

posted @ 2022-10-19 10:53  microsoft_xin  阅读(144)  评论(0编辑  收藏  举报