oracle会话的执行情况,oracle 会话 死锁 执行sql 执行job的方法

oracle 会话 死锁 执行sql 执行job的方法

2019-01-03

编程之家收集整理的这篇文章主要介绍了oracle 会话 死锁 执行sql 执行job的方法,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

 
  

//根据用户分组会话

select t.USERNAME,count() from v$session t group by t.USERNAME

//查找某一用户正在执行的sql_id值

select from v$session t where t.USERNAME = 'BUDGET' and t.sql_ID is not null

//查找对应sql_id的对应sql语句

select m.sql_TEXT from v$session t,v$sqlarea m where t.USERNAME ='BUDGET' and t.sql_id = m.sql_ID

//

select from v$sqlarea t where t.sql_ID = 'g92sy7kwt6mrq'

//查询死锁对象

select from v$locked_object

1、修改Oracle最大连接数的方法

sql;">

a、以sysdba身份登陆PL/sql 或者 Worksheet

b、查询目前连接数

show parameter processes;

c、更改系统连接数

alter system set processes=1000 scope=spfile;

d、创建pfile

create pfile from spfile;

e、重启Oracle服务或重启Oracle服务器

2、查询Oracle游标使用情况的方法

select * from v$open_cursor where user_name = 'TRAFFIC';

3、查询Oracle会话的方法

select * from v$session

杀掉会话:

sql> SELECT pid,spid FROM V$PROCESS WHERE ADDR IN (SELECT PADDR FROM V$SESSION where username ='SYS');

PID SPID

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

17 13657

ps -ef |grep 13657

kill -9 13657

sql> SELECT sid,serial# FROM V$SESSION WHERE sid in (SELECT distinct sid FROM V$MYSTAT);

SID SERIAL#

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

1637 13894

alter system disconnect session '1637,13894' immediate;

执行这句会提示:ora-00031:标记要终止的会话。。。但是其实执行成功了。

如果用pl/sql登陆客户端那边会提示:ora-00028:您的会话已经被终止。

查看正在执行sql进度:

SELECT SE.SID,OPNAME,TRUNC(SOFAR / TOTALWORK * 100,2) || '%' AS PCT_WORK,ELAPSED_SECONDS ELAPSED,ROUND(ELAPSED_SECONDS * (TOTALWORK - SOFAR) / SOFAR) REMAIN_TIME,sql_TEXT

FROM V$SESSION_LONGOPS SL,V$sqlAREA SA,V$SESSION SE

WHERE SL.sql_HASH_VALUE = SA.HASH_VALUE AND SL.SID = SE.SID AND SOFAR != TOTALWORK

ORDER BY START_TIME

SELECT a.tablespace_name "表空间名",round(total/1024/1024/1024,4) 表空间大小Gb,round(free/1024/1024/1024,4) 表空间剩余大小Gb,

round((total-free)/1024/1024/1024,4) 表空间使用大小Gb,ROUND((total-free)/total,4)*100 "使用率 %"

FROM (SELECT tablespace_name,SUM(bytes) free FROM DBA_FREE_SPACE

GROUP BY tablespace_name ) a,

(SELECT tablespace_name,SUM(bytes) total FROM DBA_DATA_FILES GROUP BY tablespace_name) b

WHERE a.tablespace_name=b.tablespace_name order by 5 desc

强制停止oracle正在执行的job:

1、查看所有job;

select * from dba_jobs;

2、查看正在运行的job;

select * from dba_jobs_running;

3、根据sid查出对应的session;

select SID,SERIAL# from V$Session where SID='&SID';

4、kill对应的session;

alter system kill session '&SID,&SERIAL';

5、将job置为broken;

exec dbms_job.broken('&JOB',true);

6、sysdba用户权限删除job;

delete from dba_jobs where JOB='&JOB';

---实在无奈时启动数据库

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Oracle执行SQL语句的过程可以分为以下几个步骤: 1. SQL解析:首先,Oracle会打开SQL语句的句柄(cursor),并检查该语句的语法和语义是否符合规则。在这个阶段,只能捕获与SQL语法和语义相关的错误信息,而不能捕获其他错误,如数据库死锁或数据转换错误。 2. 查询优化:优化器根据SQL语句和数据库的统计信息,选择最优的执行计划。执行计划是执行SQL语句时的一系列操作步骤,涉及表扫描、索引扫描、排序、聚合等。 3. 执行计划生成:根据查询优化器生成的最优执行计划,生成执行计划树。执行计划树按照执行顺序描述了SQL语句的具体执行步骤。 4. 执行计划执行:按照执行计划树的顺序,依次执行各个操作步骤,如表扫描、索引扫描、排序、聚合等。在执行过程Oracle会根据需要从磁盘或内存读取数据,并进行相应的操作。 5. 结果返回:执行完成后,将执行结果返回给客户端,供用户查看或处理。 6. 监控和调优:根据执行计划的执行情况,可以对性能进行监控和调优。例如,根据执行耗时、资源消耗等指标,可以调整数据库参数或优化SQL语句,以提高性能和效率。 综上所述,OracleSQL语句执行过程包括SQL解析、查询优化、执行计划生成、执行计划执行、结果返回和监控调优等步骤。这些步骤确保了SQL语句能够被正确解析、优化和执行,并返回正确的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [oracle sql执行过程](https://blog.csdn.net/mensuo1111/article/details/38019579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Oracle执行SQL过程](https://blog.csdn.net/qq_15765269/article/details/131576914)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值