Oracle之执行计划以及SQL优化
一个阳光努力的程序盐
要努力、要奋斗、但是不要被自己感动,没什么是不可能的,想做就可以做到
展开
-
set autotrace参数详解
set autotrace:说明:前三个参数{OFF | ON | TRACE[ONLY]} 里必需选择一个,而且只能选择一个后两个参数[EXP[LAIN]] [STAT[ISTICS]]是可选的,也可以都不选择TRACE[ONLY]的含意是只显示explain和statistic,不显示SQL的结果集,带TRACE[ONLY]的参数的以下的4,5,6最常用的是第4原创 2017-04-13 07:51:14 · 923 阅读 · 0 评论 -
SQL优化:数据类型NVARCHAR2
create table t1(id number,name nvarchar2(200)); create table t2(id number,name varchar2(200)); insert into t1 select rownum,table_name from dba_tables; insert into t2 select rownum,object原创 2017-10-01 00:40:53 · 962 阅读 · 0 评论 -
Oracle之SQL优化: plan_table is old version
1、业务用户登录数据库服务器2、SQL>set autot on --显示执行计划 SQL>set timing on --显示执行时间3、执行速度慢的SQL4、观察执行计划尾部是否有如下提示: Note -- plan table is old version5、在4有提示的情况下(建议在服务器端sqlplus中执行) SQL>drop table pla原创 2017-10-01 00:51:33 · 283 阅读 · 0 评论 -
Oracle执行计划之动态采样
/* 结论: 1. 统计信息默认情况下是每天晚上10点半后收集,如果新建对象还没来得级收集统计信息,就采用动态采样的方式。 2. 具体在set autotrace 跟踪的执行计划中,可以看到类似:- dynamic sampling used for this statement (level=2) 3. 除非你用类似/*+dynamic_sampling(t 0) */的原创 2017-10-26 11:55:49 · 1005 阅读 · 0 评论 -
Oracle之一条SQL对应多个执行计划
解析:同一个表名对应不同的用户,对用不同的表结构,就会产生一条SQL产生多个执行计划。等分结论4(一条SQL对应多个执行计划):一. 关于获取执行计划的6种方法和各自区别大家在上一例子中已经大致明白了。 1. explain plan for获取; 2. set autotrace on ; 3. statistics_level=a原创 2017-10-26 14:20:21 · 3501 阅读 · 0 评论 -
Oracle之获取真正的执行计划
/*分结论3(执行计划,你是真实的吗):一.关于获取执行计划的6种方法和各自区别大家在上一例子中已经大致明白了。 1. explain plan for获取; 2. set autotrace on ; 3. statistics_level=all; 4. 通过dbms_xplan.display_cursor输入sql_原创 2017-10-26 14:01:10 · 657 阅读 · 0 评论