对Sybase ASE性能问题进行故障排除

2020-09-19 03:09发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我是Sybase ASE的新手,...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我是Sybase ASE的新手,但在先前的工作中我曾是MS SQL Server的DBA。 我现在是使用Sybase ASE的SAP Data Services的开发经理之一。 请注意,我不是数据服务的基础人员。 数据服务服务器和相应的Sybase ASE服务器由PaaS提供商托管。

有时,数据服务不可访问。 我无法访问数据服务CMC或数据服务管理控制台。

PaaS提供程序告诉我们一个错误的查询正在影响Sybase ASE服务器。 我问他们正在查询什么数据库和什么表,但是我从他们那里一直没有得到答案。 我知道可以从MS SQL Server确定这一点,但是可以确定是什么查询导致了Sybase ASE中的问题? 如果是这样,确定的过程是什么?

谢谢。

5条回答

一个容易检查的事情是查看资源是否已用完。 使用:

 sp_monitorconfig"全部" 

如果您正在寻找错误的查询,则可以使用mon表,但其中有很多。 这是我用于实时监控(即用于当前运行的查询)的基本查询:

开启nocount
 走
 在上设置flushmessage
 走
 从monProcessActivity选择*进入#old
 等待延迟" 00:00:05"
 从monProcessActivity选择*进入#new
 而(1 = 1)
 开始
   选择new.SPID,login = suser_name(new.ServerUserID),
          CPUTime = new.CPUTime-old.CPUTime,
          PhysicalReads = new.PhysicalReads-old.PhysicalReads,LogicalReads = new.LogicalReads-old.LogicalReads,
          PhysicalWrites = new.PhysicalWrites-old.PhysicalWrites,new.LocksHeld
          来自#old old,#new new
          其中old.SPID = new.SPID和old.KPID = new.KPID
          和(new.CPUTime-old.CPUTime> 0或new.PhysicalReads-old.PhysicalReads> 0或
                new.LogicalReads-old.LogicalReads> 0或new.PhysicalWrites-old.PhysicalWrites> 0)
          按new.CPUTime-old.CPUTime desc排序

   截断旧表
   插入#old,从#new选择*
   截断表#new
   等待延迟" 00:00:05"
   -糟糕,错过了这条线。 在以后的编辑中添加:
   从monProcessActivity插入#new select *
 结束
 走
 

您还可以使用monProcessSQLText查看给定spid运行的SQL(请确保按SPID,BatchID,LineNumber SequenceInLine排序)

如果要查看历史数据,则要复杂一些。 您可以使用monCachedProcedures查看缓存过程的累积统计信息(如果将存储过程推出缓存,则统计信息将消失。同一存储过程可以有多个缓存副本)。 也有monCachedStatement,但必须启用语句缓存才能使其正常工作。 高速缓存的语句有时可能会产生"需要重新编译"的副作用(高速缓存的语句在不应该进行扫描时会扫描)

一周热门 更多>