DB2度量触发器的执行时间

kx5bkwkv  于 2022-12-23  发布在  DB2
关注(0)|答案(1)|浏览(179)

如何才能最好地度量DB2中用于插入或更新的触发器的执行时间呢?这是一些性能问题所需要的,其中一些性能问题表现得非常慢。

CREATE OR REPLACE TRIGGER CHECK
 NO CASCADE BEFORE INSERT ON DAG
 REFERENCING NEW AS OBJ
 FOR EACH ROW MODE DB2SQL 
 WHEN(
  xyz)
 )
 SIGNAL SQLSTATE xxx)
k97glaaz

k97glaaz1#

对于已编译的触发器(即具有BEGIN ... END主体):

SELECT 
   T.TRIGNAME 
 , M.SECTION_NUMBER
 , M.STMT_EXEC_TIME
 , M.NUM_EXEC_WITH_METRICS
 -- Other M metrics
 , M.*
 , M.STMT_TEXT
FROM SYSCAT.TRIGGERS T
JOIN SYSCAT.TRIGDEP D 
  ON (D.TRIGSCHEMA, D.TRIGNAME) = (T.TRIGSCHEMA, T.TRIGNAME)
JOIN TABLE (MON_GET_PKG_CACHE_STMT (NULL, NULL, NULL, -2)) M
  ON (M.PACKAGE_SCHEMA, M.PACKAGE_NAME) = (D.BSCHEMA, D.BNAME)
WHERE D.BTYPE = 'K'
  -- Or use whatever filter on your triggers
  AND (T.TABSCHEMA, T.TABNAME) = ('MYSCHEMA', 'MYTABLE')
ORDER BY 1, 2

对于内联触发器(即具有BEGIN ATOMIC ... END主体):

没有办法为它们获得单独的统计信息。它们是用激发它们的相应语句编译和优化的。

相关问题