时间:2021-05-24
//根据用户分组会话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最大连接数的方法
a、以sysdba身份登陆PL/SQL 或者 Worksheetb、查询目前连接数show parameter processes;c、更改系统连接数alter system set processes=1000 scope=spfile;d、创建pfilecreate 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';
---实在无奈时启动数据库
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
即比如我有100个可执行文件,互相间没有特别的先后执行关系,如CODE:复制代码代码如下:job_1job_2job_2.....job_100想用csh/ba
MyBatis虽然有很好的SQL执行性能,但毕竟不是完整的ORM框架,不同的数据库之间SQL执行还是有差异。笔者最近在升级Oracle驱动至ojdbc7,就发现
使用Oracle时,发现有表被锁,又不知道是谁(或者哪个程序)锁的,怎么办?两步走:1、查找出被锁对象的会话ID和序列号执行如下SQL:--查询出被锁对象,并提
如果直接执行SQL语句或者参数绑定则不用担心太多,如以下ORACLE存储过程createorreplaceprocedurekjdatepoc(dated)as
下面是我整理的监控sqlserver数据库,在性能测试过程中是否出现死锁、堵塞的SQL语句,还算比较准备,留下来备用。调用方法:选中相应的数据库,执行execs