- 博客(17)
- 资源 (1)
- 问答 (3)
- 收藏
- 关注
原创 oracle 并行
并行ddlSQL> create index idx_t3 on t1(object_name,object_id) parallel;索引已创建。SQL> select index_name ,degree from user_indexes where index_name='idx_t3';未选定行SQL> select index_nam
2015-05-31 17:36:01 551
原创 绑定变量让sql重新硬解析的方法及11g自适应游标
在系统中有的时候,因为邦迪变量窥探的影响导致了sql走的行计划不好,需要重新窥探下,有2中方法:1在表上执行ddl语句,可以让共享游标失效comment on table t1 is 'for testing '2在10.2.4以上,使用dbms_shared_pool.purge,在10.2.4中使用的时候,需要设置event 5614566alter session set
2015-05-30 11:38:58 1268
原创 plsql中使用绑定变量
摘自《基于oracle的sql优化》实例:declarevc_name varchar2(10);beginexecute immediate 'select ename from emp where empno = :1' into v_name using 1234;dbms_output.put_line(v_name);end;/declarev_s
2015-05-30 10:21:06 2240
原创 oracle中的自动统计信息收集
摘自基于orcle的sql优化10g:查看收集的jobSQL> select job_name,program_name,schedule_name,last_start_date from dba_scheduler_jobs where job_name='GATHER_STATS_JOB';JOB_NAME PROGRAM_NAME
2015-05-23 08:48:17 522
原创 自己的几个环境的oracle系统统计信息
1在我自己笔记本上,的系统统计信息模拟了些负载,收集系统的统计信息exec dbms_stats.gather_system_stats('start');SQL> select * from sys.aux_stats$; SNAME PNAME PVAL
2015-05-23 08:24:33 452
原创 直方图的类型
直方图有2中类型,等频与等高。等频就是在收集统计信息的时候,指定的桶数大于唯一值的数量,但是不能超过254个。如果在收集统计信息的时候指定的桶的数量少于唯一值的数量,或唯一值的数量大于254那么就成了等高直方图。下面实验SQL> select id,count(*) from test group by id; ID COUNT(*)---------- --
2015-05-22 09:36:27 2657
原创 直方图对cbo的影响
摘自《基于oracle的sql优化》当某个列上有直方图后,会认为对该目标列施加的等值查询条件是一个不安全的谓词条件,不安全的含义就是相关sql的执行计划会随着对目标列传入值的不同而不同,正常情况下这样是正常的,因为有了直方图,该列本省就是不均衡的了,如果目标sql的执行计划不随谓词条件传入值的不同而不同,则cbo就认为该谓词条件是一个安全的谓词条件。这种不安全的谓词条件有个问题,在curs
2015-05-21 20:52:11 509
原创 join,left join and where的测试
SQL> select * from t2; ID NAME---------- ------------- 2 c 3 d e 2 fSQL> select * from t1; ID NAME---------- -------------
2015-05-19 11:42:00 620
原创 直方图对绑定变量sql的影响
SQL> begin 2 for i in 1 .. 10000 loop 3 insert into t2 values(i,2); 4 end loop; 5 end; 6 /SQL> insert into t2 values(10001,1);已创建 1 行。SQL> commmit;
2015-05-18 22:50:52 445
原创 oracle代价计算公式
oracle包含的2种代价模型:oracle通过隐含参数“_optimizer_cost_model"控制使用哪种代价模型1io代价模型cost=iocost2cpu代价模型cost=iocost+cpucost在代价转换的过程中,所有的代价都转换为单数据块读的单次代价存在四种类型的io,单块读,多块读,直接数据块读和直接数据块写iocost=上述四种io的消耗
2015-05-12 18:01:43 1712
翻译 create index是否收集统计信息
在oracle10g 后,在create index的时候会收集对象的统计信息,所以compute statistics是为了向后兼容才存在的,在分区的情况下,是否会收集全局的统计信息呢?create table t(n1 number,n2 number) partition by range(n1)( partition p1 values less than (11),partition
2015-05-11 21:00:57 899
原创 oracle扩展统计信息
SQL> create table t as select mod(rownum,50) as n1,mod(rownum,50) as n2 from dual connect by levelSQL> exec dbms_stats.gather_table_stats(user,'t');SQL> select column_name,histogram from user_ta
2015-05-11 20:40:13 624
原创 insert append 直接路径加载
insert的时候使用appen提示是使用的直接路径加载,但是在使用的方式上有下面的现象下面是在测试insert的 append的时候遇到的问题SQL> create table tt(id number);表已创建。SQL> insert /*+ append */ into tt values(1) ;已创建 1 行。SQL> i
2015-05-11 20:24:04 685
转载 检查被修改的参数-被修改的时间及前后值
----from CarlosWITHall_parameters AS (SELECT snap_id, dbid, instance_number, parameter_name, value, isdefault, ismodified, lag(value) OVER
2015-05-09 09:54:42 651
原创 oracle执行计划中的cost,time与实际执行时间
SQL> set autotrace traceonlySQL> select * from test;已选择9行。执行计划----------------------------------------------------------Plan hash value: 1357081020-------------------------
2015-05-07 10:20:55 16829
原创 merge join cartesian产生的一种情况
查看绑定变量值dba_hist_sqlbind查看快照历史dba_hist_snapshot查看sql所用的优化器的环境 v$sql_optimizer_env查看工作区的使用情况select * from v$sql_workarea;产生cartesian的一种情况是使用了ordered提示SQL> select /*+ ordered*/
2015-05-02 13:23:39 739
原创 索引分析
dump索引信息 create index i_idx_test01 on test01(object_id,object_name);SQL> select object_id from user_objects where object_name='I_IDX_TEST01'; OBJECT_ID---------- 52480SQL> al
2015-05-02 09:55:47 635
TA创建的收藏夹 TA关注的收藏夹
TA关注的人