sybase查询计划打开游标

sybase查询计划打开游标,sybase,Sybase,另一个用户访问我们的系统,它从一个视图中选择一列的MAX(),该视图连接几个大表,但只返回几千行 他们的查询速度很慢,但当我们尝试sp_showplan时,只有“打开的光标”可见 必须有一个连接顺序和索引使用(必须在某个地方有一个完整的计划),但我们没有看到它 监视器表仅显示用于存储showplan 有人有什么想法吗?可能是某种dbcc?安装了MDA表。 如果是,您是否检查了monSysPlanText表 检查查询页的其他方法,请使用下面的 启动展示计划 写查询 去 还有其他提供详细信息的选项

另一个用户访问我们的系统,它从一个视图中选择一列的
MAX()
,该视图连接几个大表,但只返回几千行

他们的查询速度很慢,但当我们尝试
sp_showplan
时,只有“打开的光标”可见

必须有一个连接顺序和索引使用(必须在某个地方有一个完整的计划),但我们没有看到它

监视器表仅显示用于存储showplan


有人有什么想法吗?可能是某种dbcc?

安装了MDA表。 如果是,您是否检查了monSysPlanText表

检查查询页的其他方法,请使用下面的

启动展示计划 写查询 去

还有其他提供详细信息的选项 比如:-

设置统计时间 将统计信息设置为on
将statistics plancost设置为on

听起来客户端JDBC/ODBC设置可能启用了“游标”,而不是直接启用,它将游标环绕在所有查询周围

在调查方面,您还可以在激活时检查该spid的系统锁,并根据其对象ID查看正在使用哪些锁,这有助于缩小所使用的任何表和/或特定索引的范围


如果确实启用了MDA,则MonoEnObjectActivity和monProcessActivity也会有所帮助。

谢谢,MDA已启用,但我需要DBA启用系统计划监视。唯一的问题是,我认为它包含的内容与sp_showplan显示的内容相同,但我会尝试。set命令-问题是,这是另一个连接到我们的系统。他们是Oracle网关的另一边,所以我假设他们不能这样做。即使网关将通过“SET”命令,我认为它也会丢弃随计划发送的Sybase server消息。但是,为什么不尝试确认一下呢?我会让他们这么做的。非常感谢Rich Campbell-我不知道jdbc的“游标”设置,听起来确实如此。我知道syslocks中的表,但从来不知道查询计划——几年过去了!