博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年7月25日

摘要: http://www.cnblogs.com/suredandan/archive/2012/09/20/2696124.html 1、什么是锁 锁是控制“共享资源”并发存取的一种机制。注意这里说“共享资源”而不仅指“数据行”,数据库的却在行一级对表的数据加锁,但是数据库也在其它地方对各种资源的并发 阅读全文

posted @ 2012-07-25 18:02 徐正柱- 阅读(428) 评论(0) 推荐(0) 编辑

摘要: EXECUTE IMMEDIATE解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块。它的动态创建和执行 SQL语句性能超前。使用技巧1、EXECUTE IMMEDIATE将不会提交一个DML事务执行,应该显式提交 假如通过EXECUTE IMMEDIATE处理DML命令,那么在完成以前需要显式提交或者作为EXECUTE IMMEDIATE自己的一部分。假如通过EXECUTE IMMEDIATE处理DDL命令,它提交所有以前改变的数据。2、 EXECUTE IMMEDIATE不支持返回多行的查询,这种交互将用临时表来存储记录或者用REF 游标。3、当执行SQL语句时,后面不要加分号. 阅读全文

posted @ 2012-07-25 16:15 徐正柱- 阅读(405) 评论(0) 推荐(0) 编辑

摘要: 导致表的执行计划做全表扫描的原因:u SQL谓词列没有建相应的索引u 谓词列建有相应的索引,但执行计划没有使用Oracle不使用b*tree索引的情况大致如下1:where条件中和null比较可能导致不使用索引2:count,sum,ave,max,min等聚集操作时可能导致不使用索引3:显示或者隐式的函数转换导致不使用索引4:在cbo模式下,统计信息过于陈旧导致不使用索引5:组合索引中没有使用前导列导致没有使用索引6:访问的数据量超过一定的比例导致不使用索引下面就其中的几点做一些说明一:Null可以使用索引吗一般情况下,where条件中和null比较将会导致full table scan,实 阅读全文

posted @ 2012-07-25 16:07 徐正柱- 阅读(943) 评论(0) 推荐(0) 编辑

摘要: 从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息。这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启。调用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集统计信息。该过程首先检测统计信息缺失和陈旧的对象。然后确定优先级,再开始进行统计信息。可以通过以下查询这个JOB的运行情况:select * from Dba_Scheduler_Jobs where JOB_NAME ='GATHER_STATS_JOB'其实同 阅读全文

posted @ 2012-07-25 15:51 徐正柱- 阅读(410) 评论(0) 推荐(0) 编辑