ORACLE 日常操作【不断更新】
2012-08-26 10:37
295 查看
1.重建UNDO表空间
undo_management='MANUAL' ->CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE '/U01/UNDOTBS2.DBF' SIZE 500M;
->undo_management='AUTO' undo_tablespace='UNDOTBS1' ->restart
2.查看执行计划
(1).explain plan for
sql;
select * from table(dbms_xplan.display);
(2).select * from table(dbms_xplan.display_cursor('5udc2pp1r6ua7',null,'BASIC')); --利用存储包
(3).select * from table(dbms_xplan.display_awr('6ujc0p8bzm409')); --利用AWR脚本
3.10046跟踪
oradebug setmypid
oradebug EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12
oradebug TRACEFILE_NAME
执行sql
oradebug EVENT 10046 trace name context off
4.分析表 -- exec dbms_stats.gather_table_stats(user,'t1',cascade=>true);
5.修改sequence的cache值:alter sequence seq_share cache 1000;
6.dbms_job(包体)
7.查询UNDO使用情况以及具体SQL占用的UNDO块
SELECT DISTINCT tablespace_name,STATUS "状态",
COUNT(*) "EXTENT数量",
SUM(BYTES) / 1024 / 1024 / 1024 "UNDO大小"
FROM DBA_UNDO_EXTENTS
GROUP BY STATUS,tablespace_name
order by 1,2;
--------------------------
select s.username, u.name, s.sql_id, t.used_ublk, sq.sql_text
from v$transaction t, v$rollstat r, v$rollname u, v$session s, v$sql sq
where s.taddr = t.addr
and t.xidusn = r.usn
and r.usn = u.usn
and sq.sql_id = nvl(s.sql_id, s.PREV_SQL_ID)
order by s.username;
8.停止JOB
begin
DBMS_JOB.BROKEN (6718,true);
end;
commit;
9.查询SHARE POOL字池的空闲空间
select subpool,name,sum(bytes),round(sum(bytes)/1048576,2)mb
from (select 'shared pool('||decode(to_char(ksmdsidx),'0','0-Unused',ksmdsidx)||'):' subpool,ksmssnam name,
ksmsslen bytes
from x$ksmss where ksmsslen>0
and lower(ksmssnam) like lower('%free memory%'))
group by subpool,name order by subpool asc,sum(bytes) desc
10.查询对象ITL waits事件统计排名
select t.owner,t.object_name,t.object_type,statistic_name,t.value value
from v$segment_statistics t
where t.statistic_name='ITL waits'
AND t.value>10
order by value
11.PGA优化使用目标
workarea execution-optimal >=90%
workarea execution-multipass=0%
select name,value,100*(value/decode((select sum(value) from v$sysstat
where name like 'workarea executions%'),0,null,(select sum(value) from v$sysstat
where name like 'workarea executions%'))) pct
from v$sysstat where name like 'workarea executions%'
undo_management='MANUAL' ->CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE '/U01/UNDOTBS2.DBF' SIZE 500M;
->undo_management='AUTO' undo_tablespace='UNDOTBS1' ->restart
2.查看执行计划
(1).explain plan for
sql;
select * from table(dbms_xplan.display);
(2).select * from table(dbms_xplan.display_cursor('5udc2pp1r6ua7',null,'BASIC')); --利用存储包
(3).select * from table(dbms_xplan.display_awr('6ujc0p8bzm409')); --利用AWR脚本
3.10046跟踪
oradebug setmypid
oradebug EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12
oradebug TRACEFILE_NAME
执行sql
oradebug EVENT 10046 trace name context off
4.分析表 -- exec dbms_stats.gather_table_stats(user,'t1',cascade=>true);
5.修改sequence的cache值:alter sequence seq_share cache 1000;
6.dbms_job(包体)
7.查询UNDO使用情况以及具体SQL占用的UNDO块
SELECT DISTINCT tablespace_name,STATUS "状态",
COUNT(*) "EXTENT数量",
SUM(BYTES) / 1024 / 1024 / 1024 "UNDO大小"
FROM DBA_UNDO_EXTENTS
GROUP BY STATUS,tablespace_name
order by 1,2;
--------------------------
select s.username, u.name, s.sql_id, t.used_ublk, sq.sql_text
from v$transaction t, v$rollstat r, v$rollname u, v$session s, v$sql sq
where s.taddr = t.addr
and t.xidusn = r.usn
and r.usn = u.usn
and sq.sql_id = nvl(s.sql_id, s.PREV_SQL_ID)
order by s.username;
8.停止JOB
begin
DBMS_JOB.BROKEN (6718,true);
end;
commit;
9.查询SHARE POOL字池的空闲空间
select subpool,name,sum(bytes),round(sum(bytes)/1048576,2)mb
from (select 'shared pool('||decode(to_char(ksmdsidx),'0','0-Unused',ksmdsidx)||'):' subpool,ksmssnam name,
ksmsslen bytes
from x$ksmss where ksmsslen>0
and lower(ksmssnam) like lower('%free memory%'))
group by subpool,name order by subpool asc,sum(bytes) desc
10.查询对象ITL waits事件统计排名
select t.owner,t.object_name,t.object_type,statistic_name,t.value value
from v$segment_statistics t
where t.statistic_name='ITL waits'
AND t.value>10
order by value
11.PGA优化使用目标
workarea execution-optimal >=90%
workarea execution-multipass=0%
select name,value,100*(value/decode((select sum(value) from v$sysstat
where name like 'workarea executions%'),0,null,(select sum(value) from v$sysstat
where name like 'workarea executions%'))) pct
from v$sysstat where name like 'workarea executions%'
相关文章推荐
- oracle日常维护(不断更新)
- Oracle日常操作小常识(持续更新)
- oracle常见操作汇总(不断更新中....)
- Oracle 相关操作(不断更新中)
- oracle 10g 物理Dataguard 日常操作管理(一)
- Oracle12C—用户概要文件profile日常操作
- oracle的低阶操作(不定时更新)
- Oracle常用脚本(不断更新中)
- 在Oracle的连接视图上进行数据更新操作
- ORACLE常见报错记录【不断更新】
- 【JDBC】java 操作oracle 建表,更新记录
- Windows 操作技巧(不断更新)
- IO流操作工具类(不断更新中)
- Oracle 性能诊断和调优 (不断更新……)
- Oracle 10g 物理Dataguard日常操作维护(一)
- oracle日常运维操作总结--linux下oracle数据库的启动和关闭
- 数据库操作(不断更新)
- oracle实现 无则insert插入,有则update更新,一条语句直接进行insert/update操作
- Oracle技巧总结(不断更新)