【发布时间】:2017-07-28 21:39:31
【问题描述】:
我们的系统被另一个访问,它从一个视图中选择一列的MAX(),该视图连接了几个大表,但只返回几千行。
他们的查询很慢,但是当我们尝试sp_showplan 时,只有“OPEN CURSOR”可见。
必须有一个连接顺序和索引使用(某处必须有一个完整的计划),但我们看不到它。
监视器表的出现只是为了存储节目计划。
有人有什么想法吗?也许是某种 dbcc?
【问题讨论】:
标签: sybase
我们的系统被另一个访问,它从一个视图中选择一列的MAX(),该视图连接了几个大表,但只返回几千行。
他们的查询很慢,但是当我们尝试sp_showplan 时,只有“OPEN CURSOR”可见。
必须有一个连接顺序和索引使用(某处必须有一个完整的计划),但我们看不到它。
监视器表的出现只是为了存储节目计划。
有人有什么想法吗?也许是某种 dbcc?
【问题讨论】:
标签: sybase
那里安装了 MDA 表。 如果是,您是否检查了表 monSysPlanText。
查看查询计划的其他方式,请在下方使用
设置节目计划 写查询 去
还有其他选项提供详细信息 喜欢:-
设置统计时间 设置统计信息 设置统计plancost on
【讨论】:
听起来可能是客户端 JDBC/ODBC 设置启用了“光标”而不是直接启用,后者将光标包裹在所有查询周围。
在调查方面,您还可以在该 spid 处于活动状态时检查系统锁,并根据其对象 ID 查看正在使用哪些锁,这将帮助您缩小正在使用的任何表和/或特定索引的范围。
如果您确实启用了 MDA,那么 monOpenObjectActivity 和 monProcessActivity 也会有所帮助。
【讨论】: