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