select TableName from master..monTables
查询其中一个
select * from master..monEngine
go
若要列出特定监控表中的列,请输入:
select ColumnName, TypeName, Length, Description from master..monTableColumns
where TableName=”monProcessSQLText”
通过在 where 子句中替代任一监控表的名称并运行查询,您可以确 定此监控表中存在哪些列。
最消耗 CPU
· 若要确定当前执行的查询中哪些最消耗 CPU 并列出这些查询的文 本,请输入:
select s.SPID, s.CpuTime, t.LineNumber, t.SQLText
from master..monProcessStatement s, master..monProcessSQLText t where s.SPID = t.SPID
order by s.CpuTime DESC
高速缓存的命中率
· 若要确定 Adaptive Server 生存周期内的过程高速缓存的命中率,请 输入:
select "Procedure Cache Hit Ratio" = (Requests-Loads)*100/Requests from master..monProcedureCache
以下查询还提供数据高速缓存的命中率。在此示例中,命中率是针 对 10 分钟的间隔计算的,而不是针对服务器的整个生存周期:
select * into #moncache_prev from master..monDataCache waitfor delay "00:10:00" select * into #moncache_cur from master..monDataCache select p.CacheName,
"Hit Ratio"=((c.LogicalReads-p.LogicalReads) - (c.PhysicalReads - p.PhysicalReads))*100 / (c.LogicalReads - p.LogicalReads)
from #moncache_prev p, #moncache_cur c where p.CacheName = c.CacheName
若要计算特定采样期间的性能指标,请创建一个基线表,用以存储 采样期间开始时的监控值。可以通过从采样期间结束时的值中减去 基线值,来计算采样期间监控值的更改。
使用以下示例中的查询可计算数据高速缓存的命中率、创建基线、 计算采样期间的活动量。
· 若要创建一个存储过程,用以输出已执行的 SQL 以及当前执行存储过程的所有进程的反馈,请输入:
create procedure sp_backtrace @spid int as begin
select SQLText
from master..monProcessSQLText where SPID=@spid
print "Stacktrace:"
select ContextID, DBName, OwnerName, ObjectName from master..monProcessProcedures
where SPID=@spid end
· 若要确定用于 dbid 为 5、对象 ID 为 1424005073 的数据库中的表的 任何索引,请输入:
select DBID, ObjectID, LastUsedDate, UsedCount from master..monOpenObjectActivity
where dbid=5 and ObjectID=1424005073 and IndexID > 1
若要确定可否删除不被在服务器上运行的应用程序使用的索引,请 执行以下操作:
a 在访问相关表的应用程序中运行所有查询。确保 Adaptive Server
运行足够长时间,以便所有应用程序都执行其 select。
b 若要确定您的应用程序是否未在数据库中使用任何索引,请执行:
select DB = convert(char(20), db_name()),
TableName = convert(char(20), object_name(i.id, db_id())), IndexName = convert(char(20),i.name),
IndID = i.indid
from master..monOpenObjectActivity a, sysindexes i
where a.ObjectID =* i.id and a.IndexID =* i.indid
and (a.UsedCount = 0 or a.UsedCount is NULL) and i.indid > 0
and i.id > 99 -- No system tables order by 2, 4 asc