在sql中不指定Order by,排序是按照主键吗?答案是不一定。举个例子: 查询AttendanceEmpRank表,主键是AttendanceEmployeeRankId,而且是聚集索引 执行下面的语句,发现第一句不指定Order by的结果跟第二句不一样。 再看看执行计划,我们可以知道,第一句...
分类:
数据库 时间:
2014-07-16 19:03:15
阅读次数:
224
RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。Oracle的优化器有两种,基于规则的优化器(RBO)与基于代价的优化器(CBO) RBO: Rule-Based Optimiz...
分类:
数据库 时间:
2014-07-15 00:04:02
阅读次数:
581
在oracle中,标量子查询和自定义函数用的比较多,而且开发人员也比较常用,但经常会引起性能问题,特别表比较大的时候。下面的案例将教大家彻底搞懂标量子查询:
SQL> create table a (id int,name varchar2(10));
Table created.
SQL> create table b (id int,name varchar2(10));...
分类:
数据库 时间:
2014-07-14 18:38:36
阅读次数:
510
在数据库中,对性能影响最大的包括数据库的锁策略、缓存策略、索引策略、存储策略、执行计划优化策略。索引策略决定数据库快速定位数据的效率,存储策略决定数据持久化的效率。1.索引不存储null值。 更准确的说,单列索引不存储null值,复合索引不存储全为null的值。索引不能存储Null,所以对这列采用i...
分类:
数据库 时间:
2014-07-14 10:52:25
阅读次数:
248
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
原文:浅析SQL SERVER执行计划中的各类怪相在查看执行计划或调优过程中,执行计划里面有些现象总会让人有些疑惑不解: 1:为什么同一条SQL语句有时候会走索引查找,有时候SQL脚本又不走索引查找,反而走全表扫描? 2:同一条SQL语句,查询条件的取值不同,它的执行计划会一致吗? 3: 同一条SQ...
分类:
数据库 时间:
2014-07-13 21:45:56
阅读次数:
375
在查看执行计划或调优过程中,执行计划里面有些现象总会让人有些疑惑不解: 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