3.sybase笔记——监控

 

 

  1. 启动监控

Monitor Tables主要存储一些监控信息(当前运行的SQL,I/O统计信息,当前进程情况)比如monDeviceIO表(select * from monDeviceIO),存储了DISK IO有关的信息。 Monitor表默认是不安装的,需要运行installmontables 脚本来安装。 installmontables 脚本可以在sybase_HOME/scripts目录下找到, C:\dbserver\sybase15\ASE-15_0\scripts.

几点说明

(1) 所有系统表都是只读的,因为他们都在内存中

(2)只有有mon_role角色的用户可以查询这些表
2. Sybase中有哪些Monitor talbes
可以用一下SQL查询出
>>>select * from master..monTables ORDER BY TableName

3. 修改monitoring相关配置
基于性能上的考虑,有些Monitor功能默认没有启用,需要另外执行命令启用, 用

sp_configure Monitoring可以找出所有Monitor相关的参数

用sp_configure Monitoring修改

比如要启用

>>>sp_configure 'enable monitoring',1

>>>sp_configure 'sql text pipe active',1

>>>sp_configure 'sql text pipe max messages',1

(2直接修改SYBASE_HOME目录下的 <SERVER_NAME.cfg>文件
找到Monitor段

[Monitoring]

enable monitoring = DEFAULT

sql text pipe active = DEFAULT

sql text pipe max messages = DEFAULT

plan text pipe active = DEFAULT

plan text pipe max messages = DEFAULT

statement pipe active = DEFAULT

statement pipe max messages = DEFAULT

errorlog pipe active = DEFAULT

errorlog pipe max messages = DEFAULT

deadlock pipe active = DEFAULT

deadlock pipe max messages = DEFAULT

wait event timing = DEFAULT

process wait events = DEFAULT

object lockwait timing = DEFAULT

SQL batch capture = DEFAULT

statement statistics active = DEFAULT

per object statistics active = DEFAULT

max SQL text monitored = DEFAULT

performance monitoring option = DEFAULT

enable stmt cache monitoring = DEFAULT

  1. sp_sysmon

sp_sysmon 报告包含大量独立的部分。您可以运行 sp_sysmon 来生成 完整报告或仅生成某个独立的部分。您还可以指定报告应运行的时 间间隔,或在所需时间段开始和结束时亲自执行存储过程。

sp_sysmon 仅报告采样周期内的监控数据。请确保根据有代表性的数 据做出调优决策。例如,为了对螺旋锁进行调优,应根据峰值利用 率报告中的数据做出决策。但是,应根据大量代表典型和峰值负载 的样本来做出减少引擎数的决策。

sp_sysmon "internal","model"

internal是监视时间。例如:"00:01:00"

model是模块的名称。包括'kernel','wpm','parallel','taskmgmt','appmgmt','esp','housekeeper','monaccess','xactsum','xactmgmt','indexmgmt','mdcache','locks','dcache','pcache','memory','recovery','diskio','netio'

1、内核管理(kernal) 2、应用管理(appmgmt) 3、数据缓存管理(dcache)

4、ESP管理(esp) 5、索引管理(indexmgmt) 6、锁管理(locks)

7、内存管理(memory) 8、元数据高速缓存管理(mdcache)9、任务管理(taskmgmt)

10、监视器访问SQL的执行(monaccess) 11、网络I/O管理(netio)

12、并行查询管理(parallel)13、过程缓存管理(pcache)14、恢复管理(recovery)

15、事务管理(xactmgmt)16、事务概要(xactsum) 17、磁盘I/O管理(diskio)

18、工作进程管理(wpm)

通过sp_sysmon对Adaptive Server系统运行情况有一个全面系统了解,有利于更好地熟悉系统性能,更为有效地进行系统管理,合理地利用和配置系统资源,达到系统性能调优的目的。

 

 

 

 

  1. sp_monitor

稍为详细一些的用法帮助见下:(极详细的用法帮助请再在后面加上",all")

 sp_monitor 'help'

 go

监视CPU、I/O的统计活动情况

 

 

 

 

 

 

  1. sp_showoptstats 查看统计信息和直方图

Adaptive Server 包括 sp_showoptstats,其功能与 optdiag 独立实用程序类 似,用于提取和在 XML 文档中显示系统表(如 systabstats 和 sysstatistics) 中各种类型的数据对象的统计信息和直方图。语法为:

sp_showoptstats [dbname[.owner[.[table_name] ] ] ], [.column], [option]

请参见《Adaptive Server 参考手册:过程》中的 sp_showoptstats。

  1. sp_configure

查看或配置系统参数。

 

  1. sp_lock

 

 

  1. sp_who

 

  1. sp_procqmode

 

  1. sp_estspace

 

 

  1. sp_cacheconfig

 

 

 

  1. Sybase DBCC用法

DBCC是一个实用命令集,用来检查一个数据库的逻辑一致性及物理一致性。在开发和应用中,DBCC是我们经常要使用的命令。

  1. ISQL工具

指令

On 的含义

set noexec on/off

分析SQL语句后,还要执行

set statistics io on/off

统计SQL执行所需I/O

set statistics time on/off

统计SQL语句执行耗时

set showplan on/off

显示查询计划

 

  1. 输出状态报告

sp_reportstats

监视配置参数的运行情况

sp_monitorconfig "open objects"

 

 

  1. 所有可用监控表的列表

select TableName from master..monTables

查询其中一个

select * from master..monEngine

go

若要列出特定监控表中的列,请输入:

select ColumnName, TypeName, Length, Description from master..monTableColumns

where TableName=”monProcessSQLText”

通过在 where 子句中替代任一监控表的名称并运行查询,您可以确 定此监控表中存在哪些列。

  1. 最消耗 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

  1. 高速缓存的命中率

若要确定 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

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值