文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | 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年4月23日 作者: 查看:[大字体 中字体 小字体]



  Probed Table(被探查表)
       
  该表又称为内层表(INNER TABLE)。在我们从驱动表中得到具体一行的数据后,在该表中寻找符合连接条件的行。所以该表应当为大表(实际上应该为返回较大row source的表)且相应的列上应该有索引。在我们后面的描述中,一般将该表称为连接操作的row source 2。

  组合索引(concatenated index)
       
  由多个列构成的索引,如create index idx_emp on emp(col1, col2, col3, ……),则我们称idx_emp索引为组合索引。在组合索引中有一个重要的概念:引导列(leading column),在上面的例子中,col1列为引导列。当我们进行查询时可以使用”where col1 = ? ”,也可以使用”where col1 = ? and col2 = ?”,这样的限制条件都会使用索引,但是”where col2 = ? ”查询就不会使用该索引。所以限制条件中包含先导列时,该限制条件才会使用该组合索引。

  可选择性(selectivity):
       
  比较一下列中唯一键的数量和表中的行数,就可以判断该列的可选择性。如果该列的”唯一键的数量/表中的行数”的比值越接近1,则该列的可选择性越高,该列就越适合创建索引,同样索引的可选择性也越高。在可选择性高的列上进行查询时,返回的数据就较少,比较适合使用索引查询。


        有了这些背景知识后就开始介绍执行计划。为了执行语句,Oracle可能必须实现许多步骤。这些步骤中的每一步可能是从数据库中物理检索数据行,或者用某种方法准备数据行,供发出语句的用户使用。Oracle用来执行语句的这些步骤的组合被称之为执行计划。执行计划是SQL优化中最为复杂也是最为关键的部分,只有知道了ORACLE在内部到底是如何执行该SQL语句后,我们才能知道优化器选择的执行计划是否为最优的。执行计划对于DBA来说,就象财务报表对于财务人员一样重要。所以我们面临的问题主要是:如何得到执行计划;如何分析执行计划,从而找出影响性能的主要问题。下面先从分析树型执行计划开始介绍,然后介绍如何得到执行计划,再介绍如何分析执行计划。
       
  举例:这个例子显示关于下面SQL语句的执行计划。
SELECT ename, job, sal, dname
   FROM emp, dept
WHERE emp.deptno = derpt.deptno
   AND NOT EXISTS
     ( SELECT *
FROM salgrade
WHERE emp.sal BETWEEN losal AND hisal );
       
  此语句查询薪水不在任何建议薪水范围内的所有雇员的名字,工作,薪水和部门名。下图5-1显示了一个执行计划的图形表示:

  执行计划的步骤
         
  执行计划的每一步返回一组行,它们或者为下一步所使用,或者在最后一步时返回给发出SQL语句的用户或应用。由每一步返回的一组行叫做行源(row source)。图5-1树状图显示了从一步到另一步行数据的流动情况。每步的编号反映了在你观察执行计划时所示步骤的顺序(如何观察执行计划将被简短地说明)。一般来说这并不是每一步被执行的先后顺序。执行计划的每一步或者从数据库中检索行,或者接收来自一个或多个行源的行数据作为输入:由红色字框指出的步骤从数据库中的数据文件中物理检索数据。这种步骤被称之为存取路径,后面会详细介绍在Oracle可以使用的存取路径:
l        第3步和第6步分别的从EMP表和SALGRADE表读所有的行。
l        第5步在PK_DEPTNO索引中查找由步骤3返回的每个DEPTNO值。它找出与DEPT表中相关联的那些行的ROWID。
l        第4步从DEPT表中检索出ROWID为第5步返回的那些行。
由黑色字框指出的步骤在行源上操作,如做2表之间的关联,排序,或过滤等操作,后面也会给出详细的介绍:
l        第2步实现嵌套的循环操作(相当于C语句中的嵌套循环),接收从第3步和第4步来的行源,把来自第3步源的每一行与它第4步中相应的行连接在一起,返回结果行到第1步。
l        第1步完成一个过滤器操作。它接收来自第2步和第6步的行源,消除掉第2步中来的,在第6步有相应行的那些行,并将来自第2步的剩下的行返回给发出语句的用户或应用。

  实现执行计划步骤的顺序

  执行计划中的步骤不是按照它们编号的顺序来实现的:Oracle首先实现图5-1树结构图形里作为叶子出现的那些步骤(例如步骤3、5、6)。由每一步返回的行称为它下一步骤的行源。然后Oracle实现父步骤。

  举例来说,为了执行图5-1中的语句,Oracle以下列顺序实现这些步骤:

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




上一篇:通过分析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