首页 / ORACLE / oracle日常诊断语句
oracle日常诊断语句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了oracle日常诊断语句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5050字,纯文字阅读大概需要8分钟。
内容图文
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 18. 清除已删除的arch log 信息 crosscheck archivelog all; delete expired archivelog all; ――――――――――――――――――――――――――――――――――――――――――――――――
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入
18. 清除已删除的arch log 信息
crosscheck archivelog all;
delete expired archivelog all;
――――――――――――――――――――――――――――――――――――――――――――――――
19。查找等待时间最长的语句
select a.USERNAME,a.OSUSER,a.PROCESS,a.MACHINE,a.ACTION,a.sid, a.last_call_et ,b.sql_text
from v$session a
,v$sqltext b
where a.username is not null
and a.status = 'ACTIVE'
and a.sql_address = b.address
order by a.last_call_et,a.sid,b.piece ;
根据查出来的sid判断等待的对象
select owner,segment_name,segment_type
from (select p1 file#, p2 block# from v$session_wait
where sid = 284
and event in ('buffer busy waits'
,'db file sequential read'
,'db file scattered read'
,'free buffer waits')) b
,dba_extents a
where a.file_id = b.file#
and b.block# between a.block_id and (a.block_id+blocks-1);
――――――――――――――――――――――――――――――――――――――――――――――――
20. 监控索引使用
select * from V$OBJECT_USAGE where used='YES'
select * from V$OBJECT_USAGE where used='NO'
select 'alter index '||index_name||' monitoring usage;' from dba_indexes where owner='ABSYS';
――――――――――――――――――――――――――――――――――――――――――――――――
21. 查找正在执行的存储过程
create or replace procedure sys.who_is_using(obj_name varchar2) is
begin
dbms_output.enable(1000000);
for i in (SELECT distinct b.username,b.sid
FROM SYS.x$kglpn a,v$session b,SYS.x$kglob c
WHERE a.KGLPNUSE = b.saddr
and upper(c.KGLNAOBJ) like upper(OBJ_NAME)
and a.KGLPNHDL = c.KGLHDADR)
loop
dbms_output.put_line('('||to_char(i.sid)||') - '||i.username);
end loop;
end;
――――――――――――――――――――――――――――――――――――――――――――――――
22.查找全表扫描的SQL语句
Select sql_text from v$sqltext t, v$sql_plan p
Where t.hash_value=p.hash_value
And p.operation='INDEX'
And p.OPTIONS='FULL SCAN'
Order by p.HASH_VALUE, t.piece;
查找Fast Full index 扫描的Sql语句可以这样;
Select sql_text from v$sqltext t, v$sql_plan p
Where t.hash_value=p.hash_value
And p.operation='INDEX'
And p.OPTIONS='FULL SCAN'
Order by p.HASH_VALUE, t.piece;
――――――――――――――――――――――――――――――――――――――――――――――――
23.已经alter system kill session 但是没有kill干净,查找进程号
select p.addr from v$process p where pid <> 1
minus
select s.paddr from v$session s;
――――――――――――――――――――――――――――――――――――――――――――――――
24.10g自动收集数据
select JOB_NAME,ENABLED,state from dba_scheduler_jobs;
exec dbms_scheduler.disable('GATHER_STATS_JOB');
exec dbms_scheduler.enable('GATHER_STATS_JOB');
――――――――――――――――――――――――――――――――――――――――――――――――
25.查询有enqueue等待的事件
SELECT b.SID, b.serial#, b.username, machine, event, wait_time,
CHR (BITAND (p1, -16777216) / 16777215)
|| CHR (BITAND (p1, 16711680) / 65535) "Enqueue Type"
FROM v$session_wait a, v$session b
WHERE a.event NOT LIKE 'SQL*N%'
AND a.event NOT LIKE 'rdbms%'
AND a.SID = b.SID
AND b.SID > 8
AND a.event = 'enqueue'
ORDER BY username;
――――――――――――――――――――――――――――――――――――――――――――――――
26.如何确定哪个表空间读写频繁?
select name,phyrds,phywrts,readtim,writetim
from v$filestat a,v$dbfile b
where a.file# = b.file#
order by readtim desc
――――――――――――――――――――――――――――――――――――――――――――――――
27.在磁盘上的物理写入和读取次数上如果出现很大的差别,就表明肯定有哪个磁盘负载过多!
如果出现磁盘负载不平衡,可以通过移动数据文件来均衡文件I/O:
alter tablespace tablespace_name offline;
$cp /disk1/a.dbf /disk2/a.dbf;
alter tablespace tablespace_name rename datafile ‘/disk1/a.dbf’ to ‘/disk2/a.dbf’;
alter tablespace tablespace online;
$rm /disk1/a.dbf
――――――――――――――――――――――――――――――――――――――――――――――――
28. 查询SQL语句执行时,硬语法分析的次数
select name,value
from v$sysstat
where name like ‘parse count%’;
――――――――――――――――――――――――――――――――――――――――――――――――
29.查询SQL语句中没有帮定变量的SQL语句,按执行次数排序
SELECT SUBSTR (sql_text, 1, 40) “SQL”, COUNT (*),
SUM (executions) “TotExecs” FROM v$sqlarea WHERE executions < 5
GROUP BY SUBSTR (sql_text, 1, 40) HAVING COUNT (*) > 20 ORDER BY 2;
――――――――――――――――――――――――――――――――――――――――――――――――
30.该项显示buffer cache大小是否合适
公式:1-((physical reads-physical reads direct-physical reads direct (lob)) / session logical reads)
执行:
select 1-((a.value-b.value-c.value)/d.value)
from v$sysstat a,v$sysstat b,v$sysstat c,v$sysstat d
where a.name=’physical reads’ and
b.name=’physical reads direct’ and
c.name=’physical r
[1] [2]
内容总结
以上是互联网集市为您收集整理的oracle日常诊断语句全部内容,希望文章能够帮你解决oracle日常诊断语句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。