1.plsql等非sqlplus应用,不能设置autocommit为on
这个是PLSQL developer工具的限制,它在SQLPLUS上面又包了一层,所以和SQLPLUS肯定会有些区别的,很多SQLPLUS参数设置都不能用,便于工具自身管理需要。
2.强制走索引查看执行计划命令
DROP INDEX ind_dm;
CREATE INDEX ind_dm ON dm ( organ _ code ) LOCAL ;
exec dbms_stats.gather_table_stats ( ownname =>'goodisif',tabname=> 'DM' , cascade => true );
由于Oracle的优化器是CBO,所以对象的统计数据对执行计划的生成至关重要!
作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息(默认参数下是对表进行直方图信息收集,包含该表的自身-表的行数、数据块数、行长等信息;列的分析--列值的重复数、列上的空值、数据在列上的分布情况;索引的分析-索引页块的数量、索引的深度、索引聚合因子).
详见DBMS_STATS.GATHER_TABLE_STATS详解_cooperSun的博客-CSDN博客_dbms_stats.gather_table_stats
3.sql执行计划命令,hint 查询
详见常见 Oracle HINT 的用法_JiekeXu的博客-CSDN博客_oracle的hint语法
--表明对表选择索引的扫描方法.
select /*+ INDEX ( t IND_DM )*/ t.* from DM t ;
--对表设置并发数
select /*+ PARALLEL ( t ,8)*/ t.* from dualt ; --指定SQL 执行的并行度,这个值会覆盖表自身设定的并行度,如果这个值为default,CBO使用系统参数值。