1. 统计信息默认情况下是每天晚上10点半后收集,如果新建对象还没来得级收集统计信息,就采用动态采样的方式。 2. 具体在set autotrace 跟踪的执行计划中,可以看到类似:- dynamic sampling used for this statement (level=2) 3. ...
分类:
其他好文 时间:
2014-07-14 00:31:08
阅读次数:
305
我们知道ORACLE 对sql查询是基于CBO的即根据代价来进行优化。根据代价进行优化的基础是基于统计信息。如果统计信息不准确,那么oracle sql查询就没有规则可依,导致查询计划出问题。1.ORACLE 11G默认启动了统计信息收集的任务,默认运行时间是周一到周五晚上10点和周6,周天的早上6...
分类:
其他好文 时间:
2014-07-14 00:24:34
阅读次数:
241
在查看执行计划或调优过程中,执行计划里面有些现象总会让人有些疑惑不解: 1:为什么同一条SQL语句有时候会走索引查找,有时候SQL脚本又不走索引查找,反而走全表扫描? 2:同一条SQL语句,查询条件的取值不同,它的执行计划会一致吗? 3: 同一条SQL语句,其执行计划会变化,为什么 4: 在查询条件...
分类:
数据库 时间:
2014-07-13 10:52:12
阅读次数:
259
一天查看数据库长会话,发现1个sql跑得很慢,1个多小时不出结果,花了点时间把它给优化了。
优化前:
SELECT 20131023,
"A2"."ORG_ID",
COUNT(DISTINCT NLSSORT(CASE "A2"."RES_TYPE"
WHEN 'DP' THEN
...
分类:
其他好文 时间:
2014-07-12 23:48:46
阅读次数:
217
物理设计1、数据字典 a) 使用字段的备注属性进行维护 b) 使用第三方工具进行维护,如powerdesigner,可以生成html形式进行查看2、索引 a) 增加查询效率,但会降低读写效率;降低写效率是因为每次写都会维护索引,需要时间, 降低读效率是因为读前制定执行计划时,可...
分类:
数据库 时间:
2014-07-12 14:16:28
阅读次数:
191
oracle11g new feature SPM
有助于保持sql的语句特性,只允许执行性能提高的执行计划。
它不同于stored outlines, spm在于稳定sql性能,而store outlines在于冻结sql执行计划
事列
1.启用optimizer_cature_sql_plan_baselines 捕获sql语句
SQL> alter sess...
分类:
数据库 时间:
2014-07-10 23:36:46
阅读次数:
364
SQLSERVER读懂语句运行的统计信息对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间、执行时间、做了多少次磁盘读等。如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句运行的统计信息。这些信息对分析问题很有价值。1 SET STATISTIC...
分类:
数据库 时间:
2014-07-07 10:21:45
阅读次数:
326
1.重构和核心思想
我们一直在强调,程序中我们要不断的进行代码的重构,但是重构作为一种高度的脑力活动确实不易。为什么重构在一般的团队中不易推进呢?究其原因我认为有两方面的原因,第一、项目执行计划中不包括,团队只想更快的看到结果,没有规定时间用来重构,程序员可能有这方面的意识但是做了又不加入绩效所以也没有主动去重构的行动了。第二、没有一个统一的标准,每一个具体的开发人员都会按照自己认为的标...
分类:
其他好文 时间:
2014-07-05 10:51:05
阅读次数:
203
一个执行计划就是告诉Oracle对于每一个表对象使用哪种访问方法以及什么联接和联接顺序来将多个表联接到一起的一系列命令。执行计划中的每个步骤产生一个行源,然后与另外一个行源相联接,直到所有对象都被访问和联接。 Oracle中的查询计划将会完成解析,绑定,执行和提取的步骤。 Oracl...
分类:
数据库 时间:
2014-07-02 21:51:02
阅读次数:
214