0

有没有办法在 WX2 中找到资源密集型和耗时的查询?

我试图检查SYS.IPE_COMMANDSYS.IPE_TRANSACTION表格但没有帮助。

4

1 回答 1

1

在此类查询仍在运行时识别此类查询的最佳方法是以 SYS 身份与 Kognitio 控制台连接并使用工具 | 识别问题查询。这会针对 Kognitio 虚拟表运行大量查询,以了解当前查询已经运行了多长时间、它们使用了多少 RAM 等。最密集的查询位于列表顶部,按最后一列“相对严重性”排名”。

对于过去运行的查询,您可以查看 IPE_COMMAND 以查看持续时间,但仅限于非 SELECT 查询 - 这是因为 SELECT 查询默认只记录 DECLARE CURSOR 语句,它基本上只是测量编译时间而不是运行时间。要查看 SELECT 查询的详细信息,您应该加入 IPE_TRANSACTION 以查找事务的开始和结束时间。

对于非 SELECT 查询,IPE_COMMAND 包含在多个列中所用时间的细分(所有时间以毫秒为单位):

  • SM_TIME 显示编译时间
  • TM_TIME 显示解释器时间
  • QUEUE_TIME 显示查询排队的时间
  • TOTAL_TIME 汇总了上述信息

如果是评论中提到的历史视图图像命令,您可以查询

... SYS.IPE_COMMAND WHERE COMMAND IMATCHING 'create view image' AND TOTAL_TIME > 300000"

如果是针对当前正在运行的命令,您可以查看 SYS.IPE_CURTRANS 并加入 IPE_TRANSACTION 以查找事务的开始时间(假设您的 CVI 在其自己的事务中运行 - 如果不是,您将需要查看 IPE_COMMAND 以查找何时此 TNO 中的最后一条语句已完成并将其用作开始时间)

于 2015-09-28T09:20:31.030 回答