![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ORA-Tuning
文章平均质量分 68
duqiangatom
这个作者很懒,什么都没留下…
展开
-
sql tuning一个例子
1、sqlplus中 set autotrace traceonly statistics2、查看一致读、物理读排序等谢谢(执行2遍) 如下: 方案1:HELIOS @ db-1:1521/cslyn >SELECT/*+ use_hash (c b)*/ post_balance + nvl(deal_amount, 0) 2 FROM (SELECT d.site_原创 2012-12-25 21:43:51 · 371 阅读 · 0 评论 -
REDO LOG组active状态故障分析+redo调优
转:http://www.zzchn.com/edu/20070803/25569.shtml数据库平台:SunOS 5.8 Generic_108528-23 sun4u sparc SUNW,Ultra-Enterprise 数据库版本:8.1.5.0.0 数据库症状:数据库响应缓慢,应用请求无法返回,业务操作陷于停顿,此时需要DBA介入并进行问题诊断及故障处理。 1原创 2012-12-17 19:45:42 · 836 阅读 · 0 评论 -
Physical read + Logical read(DB block gets ,consistent gets )
Physical read 就是把数据块从 Disk 读到内存Logical read 就是把数据块从db_cache 读到 server_process的PGA Logical read = DB block gets + consistent getsDB block gets 就是 当前的data 读的时候SCN 根据当前最新的current SCN 获得的,一般update前原创 2012-12-17 19:46:31 · 390 阅读 · 0 评论 -
统计信息的导入导出+查看
1、查看统计信息 --1.查看表上的统计信息 SELECT NUM_ROWS, --表中的记录数 BLOCKS, --表中数据所占的数据块数 EMPTY_BLOCKS,--表中的空块数 AVG_SPACE, --数据块中平均的使用空间 CHAIN_CNT, --表中行连接和行迁移原创 2012-12-17 19:46:39 · 1158 阅读 · 0 评论 -
手动使用10g Tuning Adviser
A、没有绑定变量的情况: 1、 SQL> DECLARE l_sql VARCHAR2(500); l_sql_tune_task_id VARCHAR2(100);原创 2012-12-17 19:46:50 · 242 阅读 · 0 评论 -
SqlTrace,Event10046、10053分析sql(====by duqiang20110520===)
附(转化及获取trace文件名tkprof tracefile file sys=no) SELECT D.VALUE || '/' || LOWER(RTRIM(I.INSTANCE, CHR(0))) || '_ora_' || P.SPID || '.trc' TRACE_FILE_NAME FROM (SELECT P.SPID原创 2012-12-17 19:46:52 · 359 阅读 · 0 评论 -
run_stats
1、作用: 比较2段代码的效率2、使用举例 set serveroutput on set autot off exec runstats_pkg.rs_start; 第一段代码; exec runstats_pkg.rs_middle; 第二段代码; exec runstats_pkg.rs_stop(thr原创 2012-12-17 19:47:31 · 391 阅读 · 0 评论 -
查看当前(其它)会话的资源使用
SELECT A.SID,a.STATISTIC#, B.NAME, B.CLASS, A.VALUE FROM V$SESSTAT A, V$STATNAME B WHERE A.STATISTIC# = B.STATISTIC# AND A.SID = 25 AND (b.name LIKE '%ga %' OR b.NAME LIKE '%direct%')原创 2012-12-17 19:47:33 · 345 阅读 · 0 评论 -
HINT避免MERGE JOIN/*+ OPT_PARAM(\'_optimizer_mjc_enabled\',\'false/true\')
--alter session set “_optimizer_ignore_hints”=TRUE; -- select /*+ opt_param(‘parallel_execution_enabled’, ‘false’) */ ..--swap_join_input(tab) hint to swap the order of the tables going through t原创 2012-12-17 19:48:09 · 2910 阅读 · 0 评论 -
常见Oracle HINT的用法及示例
1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,原创 2012-12-17 19:45:21 · 362 阅读 · 0 评论 -
thomas kyte\'s runstats(比较2段代码的效率)
使用说明:a、作用:展示执行两段不同代码方案的代价差别,包括消耗时间、会话集统计和闩定差异b、rs_stop(p_difference_threshold in number default 0) 列举2段代码效率差别大于threshold的项1、授权--&1为当前使用的用户名grant select on sys.v_$timer to &&1;grant select原创 2012-12-17 19:44:49 · 734 阅读 · 0 评论 -
sql tuning的步骤
1、捕获要低效SQL a 、awr 或者ash报告中的top sql b、 V$SQL,V$SESSION_WAIT,V$SQL_TEXT 等动态视图中找出高负载sql(物理读、逻辑读、cpu使用时间等)2、查看低效sql的执行计划 a 、explain plan for 然后 select * from table(dbms_xplan.display)原创 2012-12-17 19:43:22 · 418 阅读 · 0 评论 -
表连接方式及使用场合
NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择。nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查找,没有索引一般就不会是 nested loops。一般在nested loop中, 驱动表满足条件结果集不大,被驱动表的连接字段要有索引,这样就走nstedloop。如果驱动表返回记录太多,就不适合nest原创 2012-12-25 21:47:59 · 381 阅读 · 0 评论 -
统计信息的收集
1、STATISTICS: 优化统计信息是为了更详细的描述数据库及数据库对象而收集的数据,这些信息被用于为sql语句选择最优的执行计划。优化统计信息包括的项有: Table statistics(表统计信息):Number of rows、Number of blocks、Average row length; Column statistics(列统计信息):Numb原创 2012-12-25 21:50:21 · 704 阅读 · 0 评论 -
查看执行计划3种方式
--1 生成并查看planSELECT * FROM PLAN_TABLE;DELETE FROM plan_table;EXPLAIN PLAN FOR SELECT * FROM game_draw WHERE draw_id = 33;select * FROM TABLE(dbms_xplan.display);--2 from libary cache v$sql_p原创 2012-12-25 21:45:02 · 374 阅读 · 0 评论 -
使用stored_outline优化、稳定执行计划
1、打开一个session,设置自动创建sql的stored_outline alter session set create_stored_outlines = demo;2、抓取性能不好的sql,例如(假设nest loop 比较优):SELECT /*+ use_hash(a,b)*/* FROM game_draw_stats_site_sale a ,game_dr原创 2012-12-25 21:47:00 · 387 阅读 · 0 评论 -
sql 执行步骤
A、软解析1、语法、语义、权限检查2、运用HASH算法,得到一个HASH值,这个值可以通过V$SQLAREA.HASH_VALUE 查看3、到shared pool 中的 library cache 中查找是否有相同的HASH值,如果存在且语句完全一致、运行环境完全一致,则无需硬解析,进行软解析(使用现有解析树+执行计划)。其他信息具体见附录。4、带入绑定变量5、生成ORACL原创 2012-12-17 19:44:19 · 229 阅读 · 0 评论 -
Oracle系统统计信息重要性(包含空闲+负载时的CPU IO等统计信息)
1、存在系统表 select * from sys.aux_stats$;2、统计信息项--cpuspeedNW 表示非负载情况下的cpu速度,在系统启动时自动搜集 --ioseektim IO查找时间,以毫秒表示;缺省为10ms,非负载模式或可以手动设置。--iotfrspeed IO传输速度, 表示Oracle数据库单次读数据的传输速原创 2012-12-17 19:46:58 · 1363 阅读 · 0 评论 -
格式化v$sql_plan查看实际执行计划
1、先去v$session_longops查看正在执行的6秒以上的session SELECT * FROM V$SESSION_LONGOPS t WHERE sofar2、通过以下sql对实际执行过的执行计划进行格式化 SELECT LPAD(' ', 2 * (LEVEL - 1)) || OPERATION || ' ' || DECODE(ID,原创 2012-12-17 19:48:06 · 2071 阅读 · 1 评论 -
Oracle数据库性能模型
db sequecial read/db scattered read db logfile sync(写在线日志到IO) IO 密集型 每逻辑读的DB TIME 0.1~0.5ms; (总逻辑读/DB time) CPU密集型 每逻辑读的DB TIME 混合型 每逻辑读的DB TIME 0.05ms ~ 0.1 ms最近一直在思转载 2012-12-17 19:49:53 · 377 阅读 · 0 评论 -
Global temporary table之统计信息
临时表是:应用中需要存储一个行集由一个会话或者事务(不夸session)时使用.1、临时表创建时不分配初始extent,只在运行时才在当前用户的temporary tablespace中分配存储空间。2、DDL有昂贵的代价,一次创建临时表,为db中每个存储过程都使用。3、由于优化器无法直接获得临时表的统计信息,故使用CBO时有如下几种方法: a、动态采样dynamic_原创 2012-12-17 19:48:19 · 282 阅读 · 0 评论