文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程数据库通过分析SQL语句的执行计划优化SQL(三)
精品推荐
特别推荐
·SQL数据库完全使用手册
·进阶:精妙SQL语句介绍
·sql删除记录
·学习SQL语句之SQL语句大全
·数据备份失败的五个原因及解决办法
·解决SQL Server常见的七个经典问题
·SQL存储过程的概念,创建,调用,管理,删除,优点
·带你轻松接触13个数据库术语
·如何恢复系统数据库如何恢复系统数据库?
·通过实例讲解由浅入深学会存储过程
热点TOP10
·collate chinese_prc_ci_as null 是什么意思
·数据备份失败的五个原因及解决办法
·如何恢复系统数据库如何恢复系统数据库?
·SQL语句性能优化--LECCO SQL Expert
·数据库开发个人总结(ADO.NET小结)
·图片保存到数据库和从数据库读取图片并显示(c#)
·用独立的DLL来存储图片(资源文件)
·在DataTable中查询应该注意的问题
·解析:删除数据库中重复数据的两个方法
·判断与主表关联的外键表是否有数据引用再删除

通过分析SQL语句的执行计划优化SQL(三)

日期:2008年5月27日 作者: 查看:[大字体 中字体 小字体]


   0      SELECT STATEMENT Optimizer=RULE
   1    0   MERGE JOIN
   2    1     SORT (JOIN)
   3    2       MERGE JOIN
   4    3         SORT (JOIN)
   5    4           TABLE ACCESS (FULL) OF 'C'
   6    3         SORT (JOIN)
   7    6           TABLE ACCESS (FULL) OF 'A'
   8    1     SORT (JOIN)
   9    8       TABLE ACCESS (FULL) OF 'B'

        通过上面的这些例子,使我对oracle文档上的” All things being equal RBO chooses the driving order by taking the tables in the FROM clause RIGHT to LEFT”这句话持怀疑态度。此时,我也不能使用hints来强制优化器使用nested loop,如果使用了hints,这样就自动使用CBO优化器,而不是RBO优化器了。

  对于CBO优化器:
       
  CBO根据统计信息选择驱动表,假如没有统计信息,则在from 子句中从左到右的顺序选择驱动表。这与RBO选择的顺序正好相反。这是英文原文(CBO determines join order from costs derived from gathered statistics. If there are no stats then CBO chooses the driving order of tables from LEFT to RIGHT in the FROM clause.  This is OPPOSITE to the RBO) 。我还是没法证实这句话的正确性。不过经过验证:“如果用ordered 提示(此时肯定用CBO),则以from 子句中按从左到右的顺序选择驱动表”这句话是正确的。实际上在CBO中,如果有统计数据(即对表与索引进行了分析),则优化器会自动根据cost值决定采用哪种连接类型,并选择合适的驱动表,这与where子句中各个限制条件的位置没有任何关系。如果我们要改变优化器选择的连接类型或驱动表,则就需要使用hints了,具体hints的用法在后面会给予介绍。

测试:
如果我创建的3个表:
create table A(col1 number(4,0),col2 number(4,0), col4 char(30));
create table B(col1 number(4,0),col3 number(4,0), name_b char(30));
create table C(col2 number(4,0),col3 number(4,0), name_c char(30));
create index inx_col12A on a(col1,col2);

执行查询:
select A.col4
from   B, A, C
where  B.col3 = 10
and    A.col1 = B.col1
and    A.col2 = C.col2
and    C.col3 = 5;
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=3 Card=1 Bytes=110)
   1    0   NESTED LOOPS (Cost=3 Card=1 Bytes=110)
   2    1     MERGE JOIN (CARTESIAN) (Cost=2 Card=1 Bytes=52)
   3    2       TABLE ACCESS (FULL) OF 'B' (Cost=1 Card=1 Bytes=26)

上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页 




上一篇:通过分析SQL语句的执行计划优化SQL(二)

下一篇:通过分析SQL语句的执行计划优化SQL(四)

相关文章:
·鲜为人知的Windows XP优化
·一次入侵过程的公开分析
·经典语句:71条人生信条
·网站优化需要重要注意的几点事项
·菜鸟必看:WinXP终极优化
·提高运行速度 教你一步一步优化XP系统
·求爱宝典:爱情语句
·万能五笔2001注册码分析及暴力破解 上
·经典爱情语句爱情物语爱情短语
·搜索引擎优化SEO的五大技术难题
相关软件:
·卡耐基 心灵改造计划(上集)
·全能助手Windows优化王 2006 V3.95
·3D 动画与建模:人体的综合与分析技术
·winxp sp2 完全优化版 GHO 免刻录直接克隆
·注册表优化实战练习手册(图文教程 菜鸟先飞系列教材)
·d3dx9_27.dll游戏执行补丁
·8000英语常用语句MP3+doc 查看
·Windows优化大师V7.72 Build 7.429 正式版
·杀毒优化大师 V2.3.1 build1128
·建设部监理师-案例分析录音06

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot