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