如果有任何Sybase ASE专家,我想知道是否有办法让Sybase跟踪它收到的所有查询。
我目前有一个程序运行,通常在启动后7小时后开始显示一些奇怪的行为。我想知道Sybase目前正在做什么,以便我可以解决这个问题。
我正在使用Sybase ASE 15.5。由于一些奇怪的原因,我的监控服务器无法启动。
答案 0 :(得分:8)
是的,有几种方法可以跟踪 Sybase收到的所有查询。
但是,鉴于问题的第二部分,据我所知,您需要(1)了解您的查询正在做什么(2)监控您的活动spid在其他活动spid的上下文中......如果这还不够,那么(3)监视服务器;不是跟踪和所有查询。因此,我将介绍并推迟响应Sybase中可用的跟踪元素。
您与ASE的连接是服务器进程ID或spid。
SET SHOWPLAN ON并设置NOEXEC ON,和 执行您的查询。这会给 你很了解什么 你的SQL实际上正在做什么 封面。这是必不可少的 要求,每一件事 开发人员应该熟悉, 并在测试前要求。只要感觉您的查询速度很慢,请始终检查正在执行的I / O:SET STATISTICS IO ON。
sp_who的; SP_LOCK;并注意你的spid 滴答作响,挂着,等待 锁定,阻塞,其他spid正在阻止它等等。这是 每个开发人员的基本设置 应该一直使用。
sp_sysmon监控(整个) 服务器。它可以以两种方式使用: 作为一种持续的监测工具,例如 抓住一整小时的统计数据,这是 服务器配置的基础 变化;并作为快照,例如。抓 一个5分钟的服务器snapsot 当你的进程正在运行时 当它不是,并检查 差异。通常这是为了 经验丰富的DBA,而非开发人员,您需要sa_role。
这些都在手册中,包括在线和PDF格式。
七 小时是很长的一段时间,所以你 必须使用光标或类似的, 而是处理单行 比套。检查7小时标记的常规夜间批量作业(转储,更新统计数据,重新排序);其中一些持有表锁。当然,如果服务器在Windoze上运行,那么从内存泄漏到内部的所有奇怪的事情都是标准的票价;每周至少反弹一次。
按照处理负担的顺序,你应该继续关注你的事务日志和tempdb用法。