SQL优化经验
SQL优化经验:1. 避免SQL中的函数调用,否则会产生很多的递归调用。2. 如果使用函数调用,尽量在最外层使用函数调用,否则会产生很多次的递归调用。3. 插入多行数据的时候,可以考虑集合写法。 eg: insert into t SELECT LEVEL FROM dual CONNECT BY LEVEL < 10 ; 这样的写法比写for循环会快很多。...
oracle hints的使用
优化器模式:all_rows , first_rows数据访问路径: 基于表的数据访问, 基于索引的数据访问表关联的方式:NL , MJ , HJ使用hints尽量避免在开发中使用。一般在dba层面去使用。一般也只加优化器模式,其它的hints最好不用。全表扫描 :select /*+ full(t) */ from t where object_id= 100 ;如果全表扫...
执行计划的代价估算
实验:创建表create table t as select * from dba_objects ;查看段,以及块的数目 select extents,blocks from user_segments where segment_name = 'T' ;查看表,以及表的数目 select num_rows , blocks from user_tables where table_name='T' ;创建直方图:SQL>exec dbms_stats.gather_table_stats(...
oracle表访问方式
1.oracle访问表的方式oracle 访问表中记录有三种方式:ORACLE 采用三种访问表中记录的方式: 全表扫描、通过ROWID访问表、索引扫描2.全表扫描(Full Table Scans, FTS) 为实现全表扫描,Oracle顺序地访问表中每条记录,并检查每一条记录是否满足WHERE语句的限制条件。ORACLE...
Oracle 执行计划中access 和 filter的区别
一、简要说明: Prediceate(谓词):一个查询中的WHERE限制条件。 在查看执行计划的信息中,经常会看到两个谓词filter和access,它们的区别是什么,理解了这个两个词对我们解读Oracle的执行计划信息会有所帮助。 简单地说,执行计划如果显示是acc...
编写循环插入表数据的语句。
通过ed命令,编写循环插入表数据的语句。SQL> ed已写入 file afiedt.buf 1 begin 2 for i in 1..100000 loop 3 insert into t2 values(i,'t'); 4 end loop; 5* end;SQL> /清空共享池和数据缓冲池的命令:SQL>alter system flush shared_pool...
sql执行计划基本命令
查看执行计划的命令:SET AUTOT[RACE] OFF 停止AutoTraceSET AUTOT[RACE] ON 开启AutoTrace,显示AUTOTRACE信息和SQL执行结果SET AUTOT[RACE] TRACEONLY 开启AutoTrace,仅显示AUTOTRACE信息SET AUTOT[RACE] ON EXPLAIN 开启AutoTrace,仅显示AUTOTRACE的EXPLAIN信息SET AUTOT[RACE] ON STATISTICS开启AutoTrace,仅显...