Oracle日常性能优化及事件处理范例

记录近期在使用oracle数据库时的频繁操作,包括系统优化,数据库性能分析、查询当前会话和任务、以及解锁数据表。

系统优化

通常需要调整/etc/sysctl.conf中kernel.shmmax的值,一般取物理内存的一半。

清理缓存命令:echo 3>/proc/sys/vm/drop_caches

性能分析

sqlplus / as sysdba
exec dbms_stats.gather_schema_stats('ORACLE用户名');

查询当前会话

select count(*) from v$session;
select sid, status, username from v$session s, audit_actions a where s.command = a.action and status = 'ACTIVE' and username <> '';

查询当前任务

select * from v$session_longops where sofar != totalwork;
select a.program,b.spid,c.sql_text,c.SQL_ID from v$session a,v$process b, v$sqlarea c where a.paddr = b.addr AND a.sql_hash_value = c.hash_value;

查看当前事件进度

# 任务名可在日志中看,如:"SYS"."SYS_IMPORT_FULL_01"
impdp system/manager attach="SYS"."SYS_IMPORT_FULL_01"

查询锁表解锁

select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objects b where b.object_id=l.object_id;
select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;
alter system kill session '1668,38353';

原创文章禁止转载:技术学堂 » Oracle日常性能优化及事件处理范例

精彩评论

1+2=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏