网站首页 > 技术文章 正文
概述
分享几个杀进程、长时间操作、表空间利用率的sql。
一、根据系统进程号,检查运行的sql内容并kill session
在命令行通过ps -ef |grep XXXX.sh,获得进程号后,kill -9 进程号,有的时候会kill不干净,在数据库中还存在该进程。可以试试以下的办法:
1、ps -ef |grep xxx.sh 获得该脚本的进程号(假设进程号为111)
2、ps -ef |grep sqlplus 获得该脚本的sqlplus的进程号(一般来说sqlplus的进程号比脚本的进程号大1,我们假设该脚本的sqlplus进程号为112)
3、查看sql_text
SELECT a.SID,a.SERIAL#,a.MACHINE,a.MODULE,b.SQL_TEXT FROM v$session a,v$sqlarea b WHERE b.ADDRESS=a.SQL_ADDRESS AND process=’&unix_process_id’ /*此处的unix_process_id为刚刚查到的sqlplus进程号,如112 */ ORDER BY PROCESS,a.MACHINE,a.PROGRAM;
我们在获得该sid和serial#的时候,还可以看看它的sql_text,验证一下是不是我们当前在执行的sql。
4、根据刚刚查到的sid和serial# ,执行:
alter system kill session ‘sid,serial#’ ;
二、长时间操作
1、根据刚才的操作(kill session操作的第1、2、3步骤),获得sid和serial#,记下这两个数字。
2、执行sql
SELECT DECODE(TARGET_DESC, NULL, DECODE(TARGET, NULL, OPNAME, CONCAT(OPNAME, CONCAT(‘ – ‘, TARGET))), DECODE(TARGET, NULL, CONCAT(OPNAME, CONCAT(‘ : ‘, TARGET_DESC)), CONCAT(OPNAME, CONCAT(‘ : ‘, CONCAT(TARGET_DESC, CONCAT(‘ – ‘, TARGET)))))) 当前操作, SOFAR 已处理, TOTALWORK 总共需处理, UNITS, START_TIME, TO_CHAR(ELAPSED_SECONDS, ‘99999990.00’) "已经耗时(秒)", DECODE(SOFAR, 0, 0, ROUND(ELAPSED_SECONDS * (TOTALWORK – SOFAR) / SOFAR)) "剩余时间(秒)" FROM V$SESSION_LONGOPS WHERE SID = 13 /*刚刚记下的sid*/ AND SERIAL# = 15 /*刚刚记下的serial#*/ AND SOFAR < TOTALWORK ;
三、表空间利用率
SELECT d.status "Status", d.tablespace_name "Name", d.contents "Type", d.extent_management "Extent Management", to_char(nvl(a.bytes / 1024 / 1024, 0), '99,999,990.900') "Size (M)", to_char(nvl(a.bytes – nvl(f.bytes, 0), 0) / 1024 / 1024, '99999999.999') || '/' || to_char(nvl(a.bytes / 1024 / 1024, 0), '99999999.999’) "Used (M)", to_char(nvl((a.bytes – nvl(f.bytes, 0)) / a.bytes * 100, 0), '990.00') "Used %" FROM sys.dba_tablespaces d, (SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space GROUP BY tablespace_name) f WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = f.tablespace_name(+) AND NOT (d.extent_management LIKE 'LOCAL' AND d.contents LIKE 'TEMPORARY') UNION ALL SELECT d.status "Status", d.tablespace_name "Name", d.contents "Type", d.extent_management "Extent Management", to_char(nvl(a.bytes / 1024 / 1024, 0), '99,999,990.900') "Size (M)", to_char(nvl(t.bytes, 0) / 1024 / 1024, '99999999.999’) || '/' || to_char(nvl(a.bytes / 1024 / 1024, 0), '99999999.999’) "Used (M)", to_char(nvl(t.bytes / a.bytes * 100, 0), '990.00') "Used %" FROM sys.dba_tablespaces d, (SELECT tablespace_name, SUM(bytes) bytes FROM dba_temp_files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes_cached) bytes FROM v$temp_extent_pool GROUP BY tablespace_name) t WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = t.tablespace_name(+) AND d.extent_management LIKE 'LOCAL' AND d.contents LIKE 'TEMPORARY' ORDER BY "Used %" DESC;
后面会分享更多实用的sql脚本,感兴趣的朋友可以关注下!!
- 上一篇: TCP“三次握手,四次挥手”你真的懂吗?
- 下一篇: 利用Canvas压缩图片并完成Base64编码
猜你喜欢
- 2024-09-10 走在前沿的弄潮儿,怎能不会Git的那些奇技淫巧
- 2024-09-10 TCP“三次握手,四次挥手”你真的懂吗?
- 2024-09-10 制作 deb 软件包(如何制作deb包)
- 2024-09-10 详解虚拟化之KVM概念、架构、功能、常用工具及部署
- 2024-09-10 Linux find命令一定要知道这些(linux find命令的使用)
- 2024-09-10 inux 文本处理三剑客--grep/sed/awk
- 2024-09-10 db2入门必看命令清单--日常运维必需
- 2024-09-10 浅谈Linux中的&&和ll(linux中atime)
- 2024-09-10 浅谈Linux中的&&和ll,补充&和l
- 2024-09-10 使用grep搜索多个字符串(grep命令查找多个字段)
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 516℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 489℃MySQL service启动脚本浅析(r12笔记第59天)
- 468℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 466℃启用MySQL查询缓存(mysql8.0查询缓存)
- 446℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 426℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 423℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)