- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于如何编写优化的sql语句.doc
如何编写高效的SQL语句
序言
数据库的性能问题,一直以来都是困扰各个事业部的大问题。在性能问题中SQL语句的编写又是重中之重。因此,为提高各个事业部相应产品的执行效率,提高软件的性能,实现从功能要求到性能要求的转变,特编写此专题文章。
SQL的优化器执行分析
在ORACLE RDBMS SERVER软件的内部,对于SQL语句的执行有一个优化器(OPTIMIZER)对SQL语句的执行进行优化。在我们使用后面介绍的工具对SQL的执行路径进行查看的时候,系统显示出来的是由优化器给出的执行路径的解释方案,如果对优化器的解释方案不了解的话,就无法针对出现的问题进行SQL语句的调整。现把ORACLE8提供的优化器的执行解释方案公布如下。
如何看SQL解释方案
Execution Plan
----------------------------------------------------------
1 SELECT STATEMENT Optimizer=CHOOSE (Cost=94 Card=1)
2 SORT (AGGREGATE)
3 COUNT (STOPKEY)
4 INDEX (FULL SCAN) OF PK_TBI_TM (UNIQUE) (Cost=94 Car
d=27164)
(图1)
图1为ORACLE对语句“select count(*) from tbi_tm where rownum10”给出的一个执行的解释方案,那我们该如何看这个方案呢?我们在看这个执行方案的时候要遵循一个原则“由里到外,由高到低”,同时“由里到外”不能违反“由高到低”的原则。因此上述的语句的执行步骤顺序为:4、3、2;假设存在一个步骤5的话,而且它的层次同3一致,那么,上述语句的执行步骤顺序就会改为:4、3、5、2。在图1中还给出了执行了何种操作(例如:INDEX(FULL SCAN),COUNT (STOPKEY)等,具体的说明在下面进行解释),同时在最后还给出了执行的代价(COST)。
SQL解释方案介绍
操作说明
系统中的全部操作可分为行操作或集(SET)操作。二者之间的比较可以对比如下:
行操作 集操作 一次执行一行 在行的结果集上执行 如果不涉及集操作将在FETCH级上操作 当光标打开时,在EXECUTE级上执行 在取最后一行之前,用户可以看到第一次的结果 用户不能看到第一次的结果,直到所有的行被取出和处理完 示例:全表扫描 示例:使用group by子句的全表扫描
对于行和集操作的分类如下(暂时列到ORACLE 8):
行操作 集操作 And-equal,Bitmap,Concatenation,Count stopkey,Filter,For update,Index full scan,Index range scan,Index unique scan,Intersection,Merge join,Nested loops,Outer join,Projection,Sequence,Table access by rowid,Table access cluster,Table access full,Table access hash,Union,Union-all Connect by,Count,Hash join,Minus,Remote, Sort aggregate,Sort group by,Sort join,Sort order by,Sort unique,View 具体操作解释
在上述的操作中有许多我们平时很少用到,因此就不一一介绍了,只介绍日常常用的一些操作:
约定
Table_name Column_name Index_type Company Company_id U_ind City Ind State Ind Parent_company_id Ind Competitor Company_id U_ind Product_id U_ind Sales Company_id U_ind Period_id U_ind
AND-EQUAL
说明:用来合并由索引返回的值的排序列表。AND-EQUAL用于非唯一索引的合并和唯一索引的范围扫描。
例子:select name,city,state from company where city=’Roanoke’ and state=’VA’
CONCATENATION
说明:用来执行结果集的union all操作
例子:select name,city,state from company where state=
您可能关注的文档
最近下载
- 生产与运作管理第五版陈荣秋习题答案.pdf
- 2023-2024学年广东省广州市天河区高一(下)期末物理试卷.pdf VIP
- 重大隐患事故判定标准考试专项测试题及答案.doc
- 人教版小学六年级数学下册期末试卷.pdf VIP
- 光耦测量方法.doc VIP
- BSISO7005-1-2011管法兰.第1部分:工业和通用管道系统用钢制法兰.pdf VIP
- 广东省深圳市语文中考试题与参考答案(2024年).docx VIP
- 部编版初中七年级历史下册知识点总结.docx VIP
- 建筑地基工程施工质量验收标准.GB50202-2018.docx VIP
- 专题06 轴对称常考压轴题型(含答案析)(八年级《新题速递·数学》(人教版)).docx
文档评论(0)