2015-09-28 42 views

回答

1

当它们仍在运行时,识别此类查询的最佳方式是将SYS与Kognitio Console连接并使用工具|确定问题查询。这会针对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其中command IMATCHING“创建视图图像” AND TOTAL_TIME> 300000"

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

+0

Mark,我想查找运行时间超过5分钟的视图图像语句。有没有办法钉这个? – SriniV

+0

如果是历史视图图像命令,则可以查询“... SYS.IPE_COMMAND WHERE COMMAND IMATCHING'创建视图图像'和TOTAL_TIME> 300000”。如果是用于当前正在运行的命令,则可以查看SYS.IPE_CURTRANS并加入到IPE_TRANSACTION中以查找事务的开始时间(假设您的CVI在自己的事务中运行 - 如果没有,则需要查看IPE_COMMAND以查找本TNO的最后声明完成并将其用作开始时间)。 – mc110