有没有办法在WX2中找到资源密集型和耗时的查询?
我尝试检查SYS.IPE_COMMAND
和SYS.IPE_TRANSACTION
表但没有帮助。
答案 0 :(得分:1)
在这些查询仍在运行时识别此类查询的最佳方法是将SYS与Kognitio控制台连接并使用工具|识别问题查询。这会针对Kognitio虚拟表运行大量查询,以了解当前查询的运行时间,使用的RAM量等等。最密集的查询位于列表的顶部,按最后一列排列,“相对严重性” ”
对于过去运行的查询,您可以查看IPE_COMMAND以查看持续时间,但仅查看非SELECT查询 - 这是因为SELECT查询默认只记录DECLARE CURSOR语句,这基本上只是测量编译时间而不是运行时间。要查看SELECT查询的详细信息,您应该加入IPE_TRANSACTION以查找事务的开始和结束时间。
对于非SELECT查询,IPE_COMMAND包含多个列所用时间的细分(所有时间均以毫秒为单位):
如果是评论中提到的历史视图图像命令,则可以查询
... SYS.IPE_COMMAND WHERE命令IMATCHING'创建视图图像'AND TOTAL_TIME> 300000"
如果是当前正在运行的命令,您可以查看SYS.IPE_CURTRANS并加入IPE_TRANSACTION以查找事务的开始时间(假设您的CVI在其自己的事务中运行 - 如果不是,则需要查看IPE_COMMAND以查找查找此TNO中的最后一个语句何时完成并将其用作开始时间)