1 执行计划的查看

1 explan plan

2 dbms_xplan包

3 sqlplus中 set autot

4 10046

5 awr报告

6一些现成的脚本

7 10053

常见的就前4种

执行计划的补充信息

Note

-----

- dynamic sampling used for this statement

- cardinality feedback used for this statement

- sql profile sys_sqlprof_  used for this statement

1 explain plan

Plsql developer中F5,Toad中ctrl+e,

  1. create table testyhq (id1 number,name1 varchar2(20),date1 date default sysdate);
  2. create table testyhq2 (id1 number,name1 varchar2(20),date1 date default sysdate);
  3.  
  4. insert into testyhq (id1,name1) values (1,'yhq');
  5. insert into testyhq2 (id1,name1) values (1,'yhq');
  6.  
  7. explain plan for
  8. select * from testyhq t1
  9. where exists (select 1 from testyhq2 t2 where t1.id1=t2.id1);
  10.  
  11. select * from table(dbms_xplan.display);

2 dbms_xplan包

  1. select * from table(dbms_xplan.display)
  2. select * from table(dbms_xplan.display_cursor(null,null,'runstats_last'));-all,advanced
  3. select * from table(dbms_xplan.display_cursor(null,null,'allstats last'));
  4. select * from table(dbms_xplan.display_cursor('dwcqthpyuzbgm',null,'typical -predicate -rows'));

3 autot on

set autot [off|on traceonly] [exp] [stat]

4 10046跟tkprof命令

--详细见10046

2 如何得到真实的执行计划

判断执行计划是否真实,要根据真正执行过

select count(*) from emp where ename='hongquan';

select * from v$sqlarea where sql_text like'select count(*) from emp%'

--得到 sql_id

select * from table(dbms_xplan.display_cursor('dg5qqawqhkbay',null,'typical -predicate -rows'));---advanced

-得到真实的执行计划

- Warning: basic plan statistics not available. These are only collected when:

* hint 'gather_plan_statistics' is used for the statement or

* parameter 'statistics_level' is set to 'ALL', at session or system level

  1. SQL> conn scott
  2. Enter password:
  3. Connected.
  4. SQL> set linesize 1000
  5. SQL> set pagesize 1000
  6. SQL> SELECT ename,dname,loc
  7. 2 FROM emp e, dept d
  8. 3 WHERE e.deptno = d.deptno
  9. 4 AND e.empno = 7788;
  10. ENAME DNAME LOC
  11. ---------- -------------- -------------
  12. SCOTT RESEARCH DALLAS
  13. SQL> select * from table(dbms_xplan.display_cursor(null,null));
  14.  
  15. PLAN_TABLE_OUTPUT
  16. SQL_ID bbms3v8t5j4zr, child number 0
  17. -------------------------------------
  18. SELECT ename,dname,loc FROM emp e, dept d WHERE e.deptno = d.deptno
  19. AND e.empno = 7788
  20.  
  21. Plan hash value: 2385808155
  22. ----------------------------------------------------------------------------------------
  23. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  24. ----------------------------------------------------------------------------------------
  25. | 0 | SELECT STATEMENT | | | | 2 (100)| |
  26. | 1 | NESTED LOOPS | | 1 | 33 | 2 (0)| 00:00:01 |
  27. | 2 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 13 | 1 (0)| 00:00:01 |
  28. |* 3 | INDEX UNIQUE SCAN | PK_EMP | 1 | | 0 (0)| |
  29. | 4 | TABLE ACCESS BY INDEX ROWID| DEPT | 4 | 80 | 1 (0)| 00:00:01 |
  30. |* 5 | INDEX UNIQUE SCAN | PK_DEPT | 1 | | 0 (0)| |
  31. ----------------------------------------------------------------------------------------
  32. Predicate Information (identified by operation id):
  33. ---------------------------------------------------
  34. 3 - access("E"."EMPNO"=7788)
  35. 5 - access("E"."DEPTNO"="D"."DEPTNO")
  36. 24 rows selected.
  37.  
  38. SQL> select sql_id,address,plan_hash_value,hash_value,child_number from v$sql
  39. 2 where sql_text like '%SELECT ename%' and sql_text not like '%from v$sql%';
  40.  
  41. SQL_ID ADDRESS PLAN_HASH_VALUE HASH_VALUE CHILD_NUMBER
  42. ------------- -------- --------------- ---------- ------------
  43. d3kymurnb00vk 309E4398 2385808155 3903849330 0
  44. bbms3v8t5j4zr 3094A978 2385808155 844665847 0
  45.  
  46. SQL> select * from table(dbms_xplan.display_cursor('bbms3v8t5j4zr',null,'typical -predicate -rows'));
  47.  
  48. PLAN_TABLE_OUTPUT
  49. SQL_ID bbms3v8t5j4zr, child number 0
  50. -------------------------------------
  51. SELECT ename,dname,loc FROM emp e, dept d WHERE e.deptno =
  52. d.deptno AND e.empno = 7788
  53. Plan hash value: 2385808155
  54. --------------------------------------------------------------------------------
  55. | Id | Operation | Name | Bytes | Cost (%CPU)| Time |
  56. --------------------------------------------------------------------------------
  57. | 0 | SELECT STATEMENT | | | 2 (100)| |
  58. | 1 | NESTED LOOPS | | 33 | 2 (0)| 00:00:01 |
  59. | 2 | TABLE ACCESS BY INDEX ROWID| EMP | 13 | 1 (0)| 00:00:01 |
  60. | 3 | INDEX UNIQUE SCAN | PK_EMP | | 0 (0)| |
  61. | 4 | TABLE ACCESS BY INDEX ROWID| DEPT | 80 | 1 (0)| 00:00:01 |
  62. | 5 | INDEX UNIQUE SCAN | PK_DEPT | | 0 (0)| |
  63. --------------------------------------------------------------------------------
  64. 18 rows selected.
  65.  
  66. SQL> show parameter statistics_le
  67. NAME TYPE VALUE
  68. ------------------------------------ ----------- ------------------------------
  69. statistics_level string TYPICAL
  70. SQL> alter session set statistics_level=all;
  71. Session altered.
  72. SQL> select e.ename,e.sal,s.grade
  73. 2 from emp e
  74. 3 join salgrade s
  75. 4 on e.sal between losal and hisal
  76. 5 and e.deptno = 20;
  77. ENAME SAL GRADE
  78. ---------- ---------- ----------
  79. SCOTT 3000 4
  80. FORD 3000 4
  81. JONES 2975 4
  82. ADAMS 1100 1
  83. SMITH 800 1
  84.  
  85. SQL> select * from table(dbms_xplan.display_cursor(null,null,'iostats last -predicate -note'));
  86. PLAN_TABLE_OUTPUT
  87. SQL_ID d75njv99u8m2n, child number 0
  88. -------------------------------------
  89. select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between losal and hisal
  90. and e.deptno = 20
  91.  
  92. Plan hash value: 4204027666
  93. ----------------------------------------------------------------------------------------------------
  94. | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads |
  95. --------------------------------------------------------------------------------------------
  96. | 1 | MERGE JOIN | | 1 | 1 | 5 |00:00:00.04 | 14 | 11 |
  97. | 2 | SORT JOIN | | 1 | 5 | 5 |00:00:00.03 | 7 | 5 |
  98. | 3 | TABLE ACCESS FULL | EMP | 1 | 5 | 5 |00:00:00.03 | 7 | 5 |
  99. | 4 | FILTER | | 5 | | 5 |00:00:00.01 | 7 | 6 |
  100. | 5 | SORT JOIN | | 5 | 5 | 14 |00:00:00.01 | 7 | 6 |
  101. | 6 | TABLE ACCESS FULL| SALGRADE | 1 | 5 | 5 |00:00:00.01 | 7 | 6 |
  102. ----------------------------------------------------------------------------------------------------
  103.  
  104. 18 rows selected.
  105. SQL> alter session set statistics_level=typical;
  106. Session altered.
  107. SQL> SELECT /*+ gather_plan_statistics */ ename,dname,loc
  108. 2 FROM emp e, dept d
  109. 3 WHERE e.deptno = d.deptno
  110. 4 AND d.deptno=20 ORDER BY 1,2,3;
  111. ENAME DNAME LOC
  112. ---------- -------------- -------------
  113. ADAMS RESEARCH DALLAS
  114. FORD RESEARCH DALLAS
  115. JONES RESEARCH DALLAS
  116. SCOTT RESEARCH DALLAS
  117. SMITH RESEARCH DALLAS
  118.  
  119. SQL> select * from table(dbms_xplan.display_cursor(null,null,'allstats -rows'));
  120. PLAN_TABLE_OUTPUT
  121. SQL_ID cdazxuhca6j88, child number 0
  122. -------------------------------------
  123. SELECT /*+ gather_plan_statistics */ ename,dname,loc FROM emp e, dept d WHERE e.deptno = d.deptno
  124. AND d.deptno=20 ORDER BY 1,2,3
  125.  
  126. Plan hash value: 3339094711
  127. | Id | Operation | Name | Starts | A-Rows | A-Time | Buffers | OMem | 1Mem | O/1/M |
  128. ---------------------------------------------------------------------------------------------------------------------
  129. | 1 | SORT ORDER BY | | 1 | 5 |00:00:00.01 | 9 | 2048 | 2048 | 1/0/0|
  130. | 2 | NESTED LOOPS | | 1 | 5 |00:00:00.01 | 9 | | | |
  131. | 3 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 1 |00:00:00.01 | 2 | | | |
  132. |* 4 | INDEX UNIQUE SCAN | PK_DEPT | 1 | 1 |00:00:00.01 | 1 | | | |
  133. |* 5 | TABLE ACCESS FULL | EMP | 1 | 5 |00:00:00.01 | 7 | | | |
  134. --------------------------------------------------------------------------------------------
  135. Predicate Information (identified by operation id):
  136. ---------------------------------------------------
  137. 4 - access("D"."DEPTNO"=20)
  138. 5 - filter("E"."DEPTNO"=20)
  139.  
  140. 23 rows selected.
  141. SQL>

3 查看执行计划的执行顺序

同级,最上,最右,

---- ----安装一个xplan

select * from table(xplan.display_cursor(null,null,'runstats_last'));

4 oracle里常见的执行计划

1 与表访问相关

TABLE ACCESS FULL

TABLE ACCESS BY USER ROWID

TABLE ACCESS BY INDEX ROWID

2与b tree index 相关

INDEX UNIQURE INDEX SCAN

INDEX RANGE SCAN

INDEX FULL SCAN

INDEX FAST FULL SCAN

INDEX SKIP SCAN

3与表连接相关

SORT JOIN ,MERGE JOIN

NESTED LOOPS,

HASH JOIN,

NESTED LOOPS ANTI,SEMI,MERGE JOIN

Anti:not in,not exists

Semi:in,exists----半连接会对连接结果进行必要的去重

--分区

--http://www.dbaxiaoyu.com/archives/1780

位图索引相关的执行计划

位图索引主要用于数据仓库或者dss系统,位图索引实现了快捷的按位运算

位图索引没有行锁的概念,要锁就锁索引行的整个位图段,多个数据行可能对应于同一个索引行的位图段

位图索引:如果索引行的distinct值比较少,那么与b树索引比较,会占用较少的存储空间,能够快速处理and,or的条件的sql

位图索引,会存储为null值的列(及时是单键值)

5 其他典型的执行计划

 1 and-equal(index merge)

Where出了多个不同单列的等值条件,并且多列上有单键的index,则会根据相应的单个index去扫描这些index

  1. SQL> set linesize 800
  2. SQL> set pagesize 1000
  3. SQL> set autot trace
  4. SQL> create index idx_empno on emp_t(empno);
  5. Index created.
  6. SQL> create index idx_mgr on emp_t(mgr);
  7. Index created.
  8. SQL> select /*+ and_equal( emp_t idx_empno idx_mgr)*/ empno,job,ename,mgr from emp_t where empno=7566 and mgr=7839;
  9. Execution Plan
  10. ----------------------------------------------------------
  11. Plan hash value: 3378047620
  12. -----------------------------------------------------------------------------------------
  13. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  14. -----------------------------------------------------------------------------------------
  15. | 0 | SELECT STATEMENT | | 1 | 22 | 2 (0)| 00:00:01 |
  16. |* 1 | TABLE ACCESS BY INDEX ROWID| EMP_T | 1 | 22 | 2 (0)| 00:00:01 |
  17. | 2 | AND-EQUAL | | | | | |
  18. |* 3 | INDEX RANGE SCAN | IDX_EMPNO | 1 | | 1 (0)| 00:00:01 |
  19. |* 4 | INDEX RANGE SCAN | IDX_MGR | 2 | | 1 (0)| 00:00:01 |
  20. -----------------------------------------------------------------------------------------
  21. Predicate Information (identified by operation id):
  22. ---------------------------------------------------
  23. 1 - filter("EMPNO"=7566 AND "MGR"=7839)
  24. 3 - access("EMPNO"=7566)
  25. 4 - access("MGR"=7839)

2 index join

针对单表上不同index 的连接

 3 view

Oracle在处理包含视图的sql时,根据该视图是否能做视图合并(view merging)

--如果可以合并,则oracle在执行该sql可以直接针对该视图的基表,此时sql 的执行计划很可能不会出现view关键字

--如果不能合并view,则oracle把视图看着一个独立的整体来执行,会出现关键字view

  1. create view emp_mgr_view as select * from emp where job='MANAGER'
  2.  
  3. select empno,sal from emp_mgr_view where ename='CLARK'
  4. /*+ no_unset */
  5. --------------------------------------------------------------------------
  6. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  7. --------------------------------------------------------------------------
  8. | 0 | SELECT STATEMENT | | | | 2 (100)| |
  9. |* 1 | TABLE ACCESS FULL| EMP | 1 | 23 | 2 (0)| 00:00:01 |

4 fliter

直接过滤,筛选,特殊的执行计划

1得到一个驱动结果

2 根据一定的过滤条件从上述驱动结果集中筛选掉不满足条件的记录

3 结果集中的数据返回给最终

Filter类型实际上是一种改良的嵌套循环连接

5 sort

sort aggregate

sort unique

sort join

sort group by

sort order by

Buffer sort—表示oracle会借用PGA并把扫描结果load进去

sort不一定需要排序,如Sort aggregate,Buffer sort不一定需要排序,

  1. 1 SQL> select sum(sal) from emp where job='MANAGER';
  2. Elapsed: 00:00:00.01
  3. Execution Plan
  4. ----------------------------------------------------------
  5. Plan hash value: 2083865914
  6. ---------------------------------------------------------------------------
  7. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  8. ---------------------------------------------------------------------------
  9. | 0 | SELECT STATEMENT | | 1 | 12 | 2 (0)| 00:00:01 |
  10. | 1 | SORT AGGREGATE | | 1 | 12 | | |
  11. |* 2 | TABLE ACCESS FULL| EMP | 3 | 36 | 2 (0)| 00:00:01 |
  12. ---------------------------------------------------------------------------
  13. Predicate Information (identified by operation id):
  14. ---------------------------------------------------
  15. 2 - filter("JOB"='MANAGER')
  16. 2 SQL> select distinct ename from emp where job='MANAGER' order by ename;
  17. Elapsed: 00:00:00.00
  18. Execution Plan
  19. ----------------------------------------------------------
  20. Plan hash value: 596748738
  21. ---------------------------------------------------------------------------
  22. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  23. ---------------------------------------------------------------------------
  24. | 0 | SELECT STATEMENT | | 3 | 45 | 4 (50)| 00:00:01 |
  25. | 1 | SORT UNIQUE | | 3 | 45 | 3 (34)| 00:00:01 |
  26. |* 2 | TABLE ACCESS FULL| EMP | 3 | 45 | 2 (0)| 00:00:01 |
  27. ---------------------------------------------------------------------------
  28. Predicate Information (identified by operation id):
  29. ---------------------------------------------------
  30. 2 - filter("JOB"='MANAGER')
  31. 3 SQL> select ename from emp where job='MANAGER' group by ename order by ename;
  32. Elapsed: 00:00:00.00
  33. Execution Plan
  34. ----------------------------------------------------------
  35. Plan hash value: 15469362
  36. ---------------------------------------------------------------------------
  37. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  38. ---------------------------------------------------------------------------
  39. | 0 | SELECT STATEMENT | | 3 | 45 | 3 (34)| 00:00:01 |
  40. | 1 | SORT GROUP BY | | 3 | 45 | 3 (34)| 00:00:01 |
  41. |* 2 | TABLE ACCESS FULL| EMP | 3 | 45 | 2 (0)| 00:00:01 |
  42. ---------------------------------------------------------------------------
  43. Predicate Information (identified by operation id):
  44. ---------------------------------------------------
  45. 2 - filter("JOB"='MANAGER')

6 union/union all

union ---合并 去重复

union all ---合并

  1. SQL> select col1,col2 from t1
  2. 2 union all
  3. 3 select 1,col3 from t2;
  4. 6 rows selected.
  5. Elapsed: 00:00:00.03
  6. Execution Plan
  7. ----------------------------------------------------------
  8. Plan hash value: 3002291744
  9. ---------------------------------------------------------------------------
  10. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  11. ---------------------------------------------------------------------------
  12. | 0 | SELECT STATEMENT | | 6 | 54 | 6 (50)| 00:00:01 |
  13. | 1 | UNION-ALL | | | | | |
  14. | 2 | TABLE ACCESS FULL| T1 | 3 | 45 | 3 (0)| 00:00:01 |
  15. | 3 | TABLE ACCESS FULL| T2 | 3 | 9 | 3 (0)| 00:00:01 |
  16. ---------------------------------------------------------------------------
  17. SQL> select col1,col2 from t1
  18. 2 union
  19. 3 select 1,col3 from t2;
  20. 6 rows selected.
  21. Elapsed: 00:00:00.03
  22. Execution Plan
  23. ----------------------------------------------------------
  24. Plan hash value: 3008085330
  25. ----------------------------------------------------------------------------
  26. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  27. ----------------------------------------------------------------------------
  28. | 0 | SELECT STATEMENT | | 6 | 54 | 8 (63)| 00:00:01 |
  29. | 1 | SORT UNIQUE | | 6 | 54 | 8 (63)| 00:00:01 |
  30. | 2 | UNION-ALL | | | | | |
  31. | 3 | TABLE ACCESS FULL| T1 | 3 | 45 | 3 (0)| 00:00:01 |
  32. | 4 | TABLE ACCESS FULL| T2 | 3 | 9 | 3 (0)| 00:00:01 |
  33. ----------------------------------------------------------------------------

7 concat (inlist iterator) (concatenation)

concat就是in—list扩展或者 or 扩展

  1. SQL> select empno,ename from emp where empno in (7654,7698,7782);-----oracle 10g
  2. Elapsed: 00:00:00.01
  3. Execution Plan
  4. ----------------------------------------------------------
  5. Plan hash value: 3956160932
  6. --------------------------------------------------------------------------
  7. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  8. --------------------------------------------------------------------------
  9. | 0 | SELECT STATEMENT | | 3 | 33 | 2 (0)| 00:00:01 |
  10. |* 1 | TABLE ACCESS FULL| EMP | 3 | 33 | 2 (0)| 00:00:01 |
  11. --------------------------------------------------------------------------
  12. Predicate Information (identified by operation id):
  13. ---------------------------------------------------
  14. 1 - filter("EMPNO"=7654 OR "EMPNO"=7698 OR "EMPNO"=7782)
  15. /*+ use_concat*/

8 connect by

Oracle里面层次查询的关键字

  1. SQL> select rownum from dual connect by rownum<=4;
  2. Elapsed: 00:00:00.01
  3. Execution Plan
  4. ----------------------------------------------------------
  5. Plan hash value: 1731520519
  6. ------------------------------------------------------------------------------
  7. | Id | Operation | Name | Rows | Cost (%CPU)| Time |
  8. ------------------------------------------------------------------------------
  9. | 0 | SELECT STATEMENT | | 1 | 2 (0)| 00:00:01 |
  10. | 1 | COUNT | | | | |
  11. | 2 | CONNECT BY WITHOUT FILTERING| | | | |
  12. | 3 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
  13. ------------------------------------------------------------------------------
  14. SQL> select empno,ename,mgr from emp
  15. 2 start with mgr =7839
  16. 3 connect by prior empno=mgr;
  17. 13 rows selected.
  18. Elapsed: 00:00:00.03
  19. Execution Plan
  20. ----------------------------------------------------------
  21. Plan hash value: 3364448299
  22. ----------------------------------------------------------------------------------
  23. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  24. ----------------------------------------------------------------------------------
  25. | 0 | SELECT STATEMENT | | 14 | 462 | 2 (0)| 00:00:01 |
  26. |* 1 | CONNECT BY WITH FILTERING| | | | | |
  27. |* 2 | FILTER | | | | | |
  28. | 3 | TABLE ACCESS FULL | EMP | 14 | 462 | 2 (0)| 00:00:01 |
  29. |* 4 | HASH JOIN | | | | | |
  30. | 5 | CONNECT BY PUMP | | | | | |
  31. | 6 | TABLE ACCESS FULL | EMP | 14 | 462 | 2 (0)| 00:00:01 |
  32. | 7 | TABLE ACCESS FULL | EMP | 14 | 462 | 2 (0)| 00:00:01 |
  33. ----------------------------------------------------------------------------------
  34. Predicate Information (identified by operation id):
  35. ---------------------------------------------------
  36. 1 - filter("MGR"=7839)
  37. 2 - filter("MGR"=7839)
  38. 4 - access("MGR"=NULL)

CONNECT BY WITHOUT FILTERING (UNIQUE)

CONNECT BY WITHOUT FILTERING

hint /*+ connect_by_filtering */

Oracle里执行计划的稳定

10g sql profile来稳定执行计划

automatic ,manual

Manual 一堆hint的组合

11g用spm来稳定执行计划,主动的稳定执行计划的手段,保证只有经过验证的执行计划才会被启用

Oracle里的执行计划的更多相关文章

  1. 基于Oracle的SQL优化(崔华著)-整理笔记-第2章“Oracle里的执行计划”

    详细介绍了Oracle数据里与执行计划有关的各个方面的内容,包括执行计划的含义,加何查看执行计划,如何得到目标SQL真实的执行计划,如何查看执行计划的执行顺序,Oracle数据库里各种常见的执行计划的 ...

  2. Oracle性能优化之Oracle里的执行计划

    一.执行计划 执行计划是目标SQL在oracle数据库中具体的执行步骤,oracle用来执行目标SQL语句的具体执行步骤的组合被称为执行计划. 二.如何查看oracle数据库的执行计划 oracle数 ...

  3. [terry笔记]oracle里的执行计划-查看

    内容主要来自看书学习的笔记,如下记录了常见查询执行计划的方法. 2.2 如何查看执行计划 1.explain plan 2.dbms_xplan包 3.autotrace 4.10046事件 5.10 ...

  4. Oracle中获取执行计划的几种方法分析

    以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下     1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条S ...

  5. Oracle查看SQL执行计划的方式

    Oracle查看SQL执行计划的方式     获取Oracle sql执行计划并查看执行计划,是掌握和判断数据库性能的基本技巧.下面案例介绍了多种查看sql执行计划的方式:   基本有以下几种方式: ...

  6. Oracle中的执行计划

    使用autotrace sqlplus系统参数:SQL> set autotrace trace onSQL> select * from dual;DUM---XExecution Pl ...

  7. ORACLE数据库中执行计划出现INTERNAL_FUNCTION一定是隐式转换吗?

    ORACLE数据库中,我们会使用一些SQL语句找出存在隐式转换的问题SQL,其中网上流传的一个SQL语句如下,查询V$SQL_PLAN的字段FILTER_PREDICATES中是否存在INTERNAL ...

  8. Oracle - SPM固定执行计划

    1. 通过dbms_xplan.display_cursor查看指定sql都有哪些执行计划 SQL> select * from table(dbms_xplan.display_cursor( ...

  9. 转://看懂Oracle中的执行计划

    一.什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述 二.怎样查看Oracle执行计划? 2.1 explain plan for命令查看执行计划 在sq ...

随机推荐

  1. git常用操作 配置用户信息、拉取项目、提交代码、分支操作、版本回退...

    git常用操作 配置用户信息.拉取项目.提交代码.分支操作.版本回退... /********git 配置用户信息************/ git config --global user.name ...

  2. 使用Mybatis连接数据库时报错:org.apache.ibatis.exceptions.PersistenceException: ### Error updating database.

    我的原因是字段名写错了,去数据库中复制字段名再运行就成功了.

  3. python之linecache使用

    Python linecache模块缓存读取大文件指定行 linecache模块的作用是将文件内容读取到内存中,进行缓存,而不是每次都要从硬盘中读取,这样效率提高很多,又省去了对硬盘IO控制器的频繁操 ...

  4. 五十 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门搜索

    第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门 我的搜素简单实现原理我们可以用js来实现,首先用js获取到 ...

  5. poj3181 背包+大数

    http://poj.org/problem?id=3181 Dollar Dayz Time Limit: 1000MS   Memory Limit: 65536K Total Submissio ...

  6. DTO数据传输对象

    如果有多个对象需要传输到页面上需要用DTO传输

  7. L131

    Fake, Low Quality Drugs Come at High CostAbout one in eight essential medicines in low- and middle-i ...

  8. js控制iframe的刷新(页面局部刷新)

    今天遇到个问题,后台会员审核之后,页面内的会员审核状态要及时改变,但又不能指望用户手动刷新(用户体验很不好) 如果审核页面和显示审核状态时同在一个html页面的话,那么直接用js改变div内部的文本就 ...

  9. iOS开发之谓词Predicate和对象数组的排序

    我们在开发中经常使用的Predicate谓词,主要是正则表达式的使用,今天给大家简单的讲讲怎样去使用谓词. 因为内容比较简单,所以直接上代码展示: NSMutableArray *people_arr ...

  10. hdu-5117 Fluorescent(状压dp)

    题目链接: Fluorescent Time Limit: 3000/3000 MS (Java/Others)     Memory Limit: 512000/512000 K (Java/Oth ...