ITPub博客

首页 > 数据库 > 数据库开发技术 > db2

db2

原创 数据库开发技术 作者:long_small 时间:2025-04-25 10:39:55 0 删除 编辑

一 长事务

1  长时间运行大于60分钟的长事务(视图 sysibmadm.MON_CURRENT_SQ)

  

 db2 "select substr(APPLICATION_HANDLE,1,6) handle, substr(APPLICATION_ID,1,40) APPLICATION_ID, UOW_ID,substr(APPLICATION_NAME,1,21) appl_name, substr(SESSION_AUTH_ID,1,10) SESSION_AUTH, 

 substr(CLIENT_APPLNAME,1,10) CLIENT_APP, substr(ACTIVITY_STATE,1,18) ACTIVITY_STATE, substr(ACTIVITY_TYPE,1,10) ACTIV_TYPE, ELAPSED_TIME_SEC, TOTAL_CPU_TIME, ROWS_READ, ROWS_RETURNED,

 QUERY_COST_ESTIMATE, DIRECT_READS,DIRECT_WRITES, substr(STMT_TEXT,1,1000) STMT_TEXT from sysibmadm.MON_CURRENT_SQL where ELAPSED_TIME_SEC > 300 order by ELAPSED_TIME_SEC DESC”



UOW_START_TIME             UOW_STOP_TIME               AGENT_ID

-------------------------- -------------------------- --------------------

2011-12-10-02.47.14.788208 -                                           8430



2 做快照


db2 get snapshot for application  agentid 【 8430 】



3 结束事务(和甲方DBA及应用人员商量)


db2 “force applications(8430)”



二  消耗cpu高的sql


定位 正在运行的消耗 cpu 的 sql 语句

(视图 sysibmadm.MON_CURRENT_UOW, sysibmadm.MON_CURRENT_SQL)

  db2 "select a.APPLICATION_HANDLE,a.TOTAL_CPU_TIME,b.ROWS_READ,substr(b.STMT_TEXT,1,100) STMT_TEXT from sysibmadm.MON_CURRENT_UOW a,sysibmadm.MON_CURRENT_SQL b where a.APPLICATION_HANDLE=b.APPLICATION_HANDLE order by a.TOTAL_CPU_TIME desc fetch first 5 rows only"

获取快照信息供后续优化使用

  $db2 “get snapshot for application agentid <agentid>”

  终止 长时间运行 sql

  $db2 “force applications 【 agentid 】 ”


消耗用户cpu高的sql(视图 snapdyn_sql)


select stmt_text from sysibmadm.snapdyn_sql order by  TOTAL_USER_CPU_TIME desc fetch first 5 rows only;



三  监控运行时间长的sql


select * from sysibmadm.long_running_sql order by elapsed_time_min desc fetch first 3 rows noly;



四 监控执行次数多的sql




select stmt_text,num_executions from sysibmadm.top_dynamic_sql order by  num_executions 

desc fetch first 5 rows only;



五 监控排序次数多的sql

select stmt_text,stmt_sorts from sysibmadm.top_dynamic_sql order by stmt_sorts desc fetch first 5 rows only;




六 :针对IO瓶颈,确定了热点对象后,检查该热点对象执行次数多的sql


1 已经知道热点对象如:FLIGHTHISTORY


select stmt_text,num_executions from sysibmadm.snapdyn_sql

where stmt_text like '% LIGHTHISTORY%' order by  num_executions desc fetch first 5 rows only;














来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25846553/viewspace-3082430/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
吕生龙,现就职于IBM,db2 dba,oracle 10G OCP

注册时间:2020-04-07

  • 博文量
    64
  • 访问量
    66974