随笔分类 -  Oracle性能调优

摘要:普通用户使用 autotrace,出现如下报错: SQL> set autotrace on SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled SP2-0611: Error enabling 阅读全文
posted @ 2017-11-11 10:32 ClarkYu 阅读(175) 评论(0) 推荐(0)
摘要:从以下两个视图中查到的session中,有P1,P2,P3参数select * from v$sessionselect * from v$session_waitselect * from v$session_wait_history想知道每个参数的意义,可以从V$EVENT_NAME视图中得到, 阅读全文
posted @ 2017-11-11 10:27 ClarkYu 阅读(1484) 评论(0) 推荐(0)
摘要:Q: DBMS_STATS.GATHER_SCHEMA_STATS ('schema_name'); 使用这个收集统计信息,estimate_percent使用默认值 查看官方文档默认值为DEFAULT_ESTIMATE_PERCENT,但是这个DEFAULT_ESTIMATE_PERCENT又是多 阅读全文
posted @ 2017-11-11 10:09 ClarkYu 阅读(151) 评论(0) 推荐(0)
摘要:下面三个查询结果均可查询出随着内存参数设置的变化性能的变化情况,对oracle数据库内存的设置有一定的建议和指导作用。select t.SGA_SIZE,t.ESTD_DB_TIME_FACTOR from v$sga_target_advice t order by sga_sizeSELECT 阅读全文
posted @ 2017-11-11 09:58 ClarkYu 阅读(652) 评论(0) 推荐(0)
摘要:sql_trace是oracle提供的一个非常好的跟踪工具,主要用来检查数据库的异常情况,通过跟踪数据库的活动,找到有问题的语句。 一、概述: SQL_TRACE是Oracle的一个非常强大的工具。打开SQL_TRACE就可以逐步捕获任何一个会话的数据库活动,或者捕获整个数据库的活动,并将数据库活动 阅读全文
posted @ 2017-11-11 09:54 ClarkYu 阅读(9462) 评论(0) 推荐(0)
摘要:将指定SQL的执行计划从共享池删除的方法http://www.2cto.com/database/201204/126388.htmlOracle SQL执行计划变更的问题http://www.2cto.com/database/201204/126493.html 阅读全文
posted @ 2017-11-11 09:53 ClarkYu 阅读(454) 评论(0) 推荐(0)
摘要:Q:如果应用因为统计信息没有收集或使用了错误的统计信息跑的很慢,我执行dbms_stats.gather_schema_stats收集统计信息,能立即生效么,还是说需要额外的处理呢。A:立即,但不会影响正在执行的sql 阅读全文
posted @ 2017-11-11 09:53 ClarkYu 阅读(432) 评论(0) 推荐(0)
摘要:生产环境一日常insert在业务量加倍之后非常缓慢,对有问题sql做awr报告和10046trace得出以下结论:In the 10046 trace, the execution of sql elapsed 27.85 secs, the waiting event held 12.41 sec 阅读全文
posted @ 2017-11-11 09:52 ClarkYu 阅读(621) 评论(0) 推荐(0)
摘要:通过详细的10046 trace发现,大量的io等待分布在以下数据文件上:Misses in library cache during parse: 0Elapsed times include waiting on following events: Event waited on Times M 阅读全文
posted @ 2017-11-11 09:49 ClarkYu 阅读(903) 评论(0) 推荐(0)
摘要:想对一个sql做10046trace,结果因为10g数据库无法对sql_id做,只能使用绑定变量的方法,下面sql是如何使用绑定变量运行sql的语句declare v_sql VARCHAR2(2000):= 'insert into regions values(:1,:2)';begin exe 阅读全文
posted @ 2017-11-11 09:48 ClarkYu 阅读(2697) 评论(0) 推荐(0)
摘要:alter system dump datafile 8 block 2523;Block dump from disk:buffer tsn: 87 rdba: 0x160dd924 (88/907556)scn: 0x0d5e.326709f3 seq: 0x01 flg: 0x06 tail: 阅读全文
posted @ 2017-11-11 09:48 ClarkYu 阅读(1138) 评论(1) 推荐(0)
摘要:sql tuning advisor:创建任务DECLARE 运行任务 查看状态和查看结果 如想针对sql_id做调优,create task时使用如下语法: 下面举例一个:1、为SQL_id创建一个STA(SQL Tuning advisor)分析任务(使用SYS用户执行)SQL> variabl 阅读全文
posted @ 2017-11-11 09:47 ClarkYu 阅读(769) 评论(0) 推荐(0)
摘要:ORACLE_HOME/RDBMS/admin/awrsqrpt.sql 这个脚本可以很方便地取出某个sql在某两个快照间隔内,消耗cpu时间,执行次数,逻辑读,物理读,sql的执行计划以及sql的full sql text,对调优非常方便 阅读全文
posted @ 2017-11-11 09:47 ClarkYu 阅读(594) 评论(0) 推荐(0)
摘要:drop index idx_t;create index idx_t on t(owner desc,object_type asc);select /*+index(a,idx_t)*/ * from t a order by owner desc ,object_type asc;执行计划 | 阅读全文
posted @ 2017-11-11 09:46 ClarkYu 阅读(556) 评论(0) 推荐(0)
摘要:请记住这个INDEX FULL SCAN扫描方式,并体会与INDEX FAST FULL SCAN的区别drop table t purge;create table t as select * from dba_objects;update t set object_id=rownum;commi 阅读全文
posted @ 2017-11-11 09:45 ClarkYu 阅读(658) 评论(0) 推荐(0)
摘要:1 nested loops join--我们用设置statistics_level=all的方式来观察如下表连接语句的执行计划:--T2表被访问100次(驱动表访问1次,被驱动表访问100次)--这个set linesize 1000对dbms_xplan.display_cursor还是有影响的 阅读全文
posted @ 2017-11-11 09:44 ClarkYu 阅读(879) 评论(0) 推荐(0)
摘要:--请记住这个INDEX SKIP SCAN扫描方式drop table t purge;create table t as select * from dba_objects;update t set object_type='TABLE' ;commit;update t set object_ 阅读全文
posted @ 2017-11-11 09:44 ClarkYu 阅读(359) 评论(0) 推荐(0)
摘要:--构造环境drop table dept purge;drop table emp purge;create table dept as select * from scott.dept;create table emp as select * from scott.emp; set term o 阅读全文
posted @ 2017-11-11 09:43 ClarkYu 阅读(374) 评论(0) 推荐(0)
摘要:/*好处: 1. 性能更好,一份复制(类似SYS_TMP...),多份使用。 2. 结构清晰,预先定义。 3. 代码修改不必修改多处。 请注意观察语句1和语句2执行计划的差异,尤其是语句2的SYS_TEMP_0FD9D6605_3B91BA4这些奇怪的命名。其实这就表示是复制在内存中的数据,一次复制 阅读全文
posted @ 2017-11-11 09:43 ClarkYu 阅读(354) 评论(0) 推荐(0)