如何查看Sybase的查询历史记录?
我正在使用“ Sybase Central 16”。
我正在为SQL Server寻找类似的东西:
SELECT t.[text]
FROM sys.dm_exec_cached_plans AS p
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
我需要查看客户端的应用程序如何运行查询,以便找到一些“大海捞针”数据表和列。
(我远不是Sybase专家。我非常了解SQL Server,但是我正在与Sybase进行咨询工作。)
谢谢。
答案 0 :(得分:0)
假设这是Sybase ASE,则可以从MDA (monitoring) tables (master..mon%)中提取很多与性能相关的数据/指标。
通常可以从以下各项中提取计划和查询文本:monProcessSQLText
(当前正在运行的查询),monSysSQLText
(最近正在运行的查询),monSysPlanText
(最近运行的查询的查询计划)。 / p>
请记住,monSys%
表是队列,它们可以维护的数据量将取决于分配给所述队列的内存量以及正在监视的活动量。
出于历史目的,DBA通常会设置一个过程,以定期从MDA表中提取数据并将其存储在可以运行查询的存储库数据库中。
市场上有一些声称捕获/存储MDA表的第三方产品,尽管a)您需要为该产品支付$$的费用和/或b)产品可能无法捕获/存储数据。以易于访问的格式显示(例如,某些产品尝试将数据汇总到摘要中……如果您需要深入研究各个查询,则不是很有用)。
您可能要看的一种免费产品是ASEMON。我通常会在为我工作的每个客户上安装此产品,通常会取代昂贵的第三方产品,这些产品往往比汇总详细的P&T工作通常需要的原始数据花更多的精力来汇总和着色数据。