当前位置: 首页 > news >正文

达梦定时任务更新阻塞信息到表

数据库阻塞,一些原因,查不到历史的阻塞信息。配置存储过程,把一些阻塞信息更新到表,然后配置定时任务,定时更新

 

 

--STEP1:创建辅助记录表:

CREATE TABLE TRX_WAIT(
"STATTIME" TIMESTAMP,
"SS" INTEGER,
"WT" VARCHAR2(30),
"WT_SESS_ID" BIGINT,
"WT_SQL_TEXT" VARCHAR(1000),
"WT_STATE" VARCHAR(10),
"WT_TRX_ID" BIGINT,
"WT_USER_NAME" VARCHAR(128),
"WT_CLNT_IP" VARCHAR(128),
"WT_APPNAME" VARCHAR(128),
"WT_LAST_SEND_TIME" DATETIME(6),
"FM" VARCHAR2(30),
"FM_SESS_ID" BIGINT ,
"FM_SQL_TEXT" VARCHAR(1000),
"FM_STATE" VARCHAR(10),
"FM_TRX_ID" BIGINT,
"FM_USER_NAME" VARCHAR(128),
"FM_CLNT_IP" VARCHAR(128),
"FM APPNAME" VARCHAR(128),
"FM LAST SEND TIME"DATETIME(6)
);

 

--STEP2:创建辅助存储过程GET_TX_WAIT

CREATE PROCEDURE GET_TX_WAIT AS
BEGIN
INSERT INTO TRX_WAIT
SELECT SYSDATE AS STATTIME,
DATEDIFF(SS,S1.LAST_SEND_TIME,SYSDATE) AS SS,
'被阻塞的信息' AS WT,
S1.SESS_ID AS WT_SESS_ID,
S1.SQL_TEXT AS WT_SQL_TEXT,
S1.STATE AS WT_STATE,
S1.TRX_ID AS WT_TRX_ID,
S1.USER_NAME AS WT_USER_NAME,
S1.CLNT_IP AS WT_CLNT_IP,
S1.APPNAME AS WT_APPNAME,
S1.LAST_SEND_TIME AS WT_LAST_SEND_TIME,
'引起阻塞的信息' AS FM,
S2.SESS_ID AS FM_SESS_ID,
S2.SQL_TEXT AS FM_SQL_TEXT,
S2.STATE AS FM_STATE,
S2.TRX_ID AS FM_TRX_ID,
S2.USER_NAME AS FM_USER_NAME,
S2.CLNT_IP AS FM_CLNT_IP,
S2.APPNAME AS FM_APPNAME,
S2.LAST_SEND_TIME AS FM_LAST_SEND_TIME
FROM V$SESSIONS S1,
V$SESSIONS S2 ,V$TRXWAIT W
WHERE S1.TRX_ID = W.ID
AND S2.TRX_ID = W.WAIT_FOR_ID;
COMMIT;
END;

 


----STEP3:创建作业定时10分钟搜一次,收集阻塞数据:

call SP_CREATE_JOB('GETTRX',1,0,'',0,0,'',0,'获取历史阻塞信息');

call SP_JOB_CONFIG_START('GETTRX');

call SP_ADD_JOB_STEP('GETTRX', 'GETTRX_SQL', 0, 'call GET_TX_WAIT;', 1, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('GETTRX', 'GETTRX01', 1, 1, 1, 0, 10, '00:00:00', '23:59:59', '2025-10-13 17:48:00', NULL, '');

call SP_JOB_CONFIG_COMMIT('GETTRX');

 

--最后查表,就知道历史的阻塞信息了
select * from TRX_WAIT;

 


###测试:

CREATE TABLE "SYSDBA"."TEST1"
(
"NAME" VARCHAR(20),
"ID" INT NOT NULL,
NOT CLUSTER PRIMARY KEY("ID"));

打开两个查询窗口:

在两个窗口都输入插入数据语句:
insert into sysdba.test1 values('aaa',1);

一个窗口顺利执行:
第二个窗口无反应,发生阻塞:

第一个窗口里,插入的数据由于没有 commit 提交,事务没有结束,此时因为存在主键约束,第二个窗口查不到对应的数据,同样也无法插入,此时发生阻塞。

再打开个窗口执行

call GET_TX_WAIT;


再查询,就可以看到阻塞信息了
select * from TRX_WAIT;

 

http://www.hskmm.com/?act=detail&tid=31626

相关文章:

  • 左值,右值和移动语义
  • 2025年千斤顶厂家最新权威推荐排行榜:液压千斤顶、机械千斤顶、电动千斤顶源头厂家综合实力深度解析
  • VKD104CR是永嘉微VINKA推出低功耗2路触摸芯片该芯片具有较高的集成度
  • Cookie如何设置HTTPOnly和Secure 以防止XSS跨站脚本攻击
  • STM32学习路线!600+讲课程!软硬件兼修:裸机+RTOS+LVGL+硬件设计+项目实战 (STM32多核心开发板)
  • zerotier自建planet内网穿透详细配置教程 - IT苦行僧
  • 【2025-10-11】适应变化
  • C语言的学习——常量
  • 会充电的CANoe,高效完成即插即充(PnC)智能充电功能测试
  • Bridge 2025超详细保姆级下载安装全教程(含软件下载)
  • legit torrents, legit trackers
  • 2025年锅炉厂家最新权威推荐榜:燃气采暖锅炉/电热水锅炉/生物质锅炉/真空热水锅炉/蒸汽发生器全品类深度解析
  • c语言之对齐函数代码示例
  • PyAutoGUI库自动化测试脚本工具模拟键盘鼠标操作
  • 什么是Barriers IO
  • 2025 年床上用品厂家最新推荐排行榜:从老牌实力到新锐创新的品质之选,涵盖批发与婚嫁选购指南
  • MySQL中NULL值的5个反直觉行为,扭到了吗?
  • 2025 年射线防护服生产厂家最新推荐排行榜:覆盖 X 射线 / 医用 / 中子射线防护服及防护裙、防护屏等品类,为医疗安检领域精选优质品牌
  • 2025 最新阳澄湖大闸蟹权威推荐排行榜,揭秘优质品牌的独特魅力大闸蟹蟹卡 / 大闸蟹礼盒 / 大闸蟹礼券 / 好蟹汇大闸蟹选择指南
  • 碳中和背景下的能源数字化:MyEMS 为企业提供精准碳管理方案
  • 在 VS Code 中集成 LaTeX 环境并创建第一个文档
  • 2025 年月子会所推荐:女王臻瑷专注母婴护理 10 年,西安口碑之选的高端母婴护理服务解析
  • Ai元人文:思想的归乡——从悟空之眼到未来哪吒
  • 国产测试用例管理工具市场格局解析:四大产品如何赋能企业数字化转型
  • 桌面预测类编写,桌面%雷达,信号预测%系统构建,基于python,tk,scikit-learn机器学习算法实现,桌面预支持向量机分类算法,CSV无数据库
  • C语言的学习——梦开始的地方
  • 学习 n8n 心得
  • 2025 年外呼系统公司推荐:重庆腾宇科技,外呼系统专业缔造者与行业服务典范
  • oop实验一
  • 池化