- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
优化数据访问
概要
• 本章主要介绍数据库引擎如何访问数据。
– full scan table
– Index
1. 找不出理想的访问路径
• 查询优化器正确的选择执行计划后,不意
味着执行计划一定能运行良好。
• 怎么办?
– 调整SQL
– 调整访问结构(add index )
• 本节重点:
– 介绍几种检查手段,用来识别不理想的访问路
径
– 找出原因并加以解决。
1.1 识别
• 衡量访问路径的标准:
– 处理数据时消耗的资源是否可接受。
• 可以接受的标准:
– 一个访问路径所使用的资源和返回行的总数成正比例。
– 所以检查应该基于返回单行所用的资源总量。
• 关注效率,而不仅仅是速度。
– SQL语句使用越少资源,系统就会越具有扩展性、越快。
– 资源:CPU、MEMORY、磁盘和网络。
• 易于收集的度量:
– 逻辑读数量
• 受制于CPU
• 可能导致物理读
• 受制于串行操作,减少逻辑读有利于避免扩展性问题。
1.1 识别
• 经验法则:
– 集中精力解决每个返回行具有较多逻辑读的访问路径上
每个返回行逻辑读个数 效率
5 好
10-15 可接受
15-20 低效
1.1 识别
• 举例:
Select * from t where n1 between 6000 and 7000 and n2=19;
TKPROF输出内容摘要:
Rows Row Source Operation
3 TABLE ACCESS BY INDEX ROWID T (cr=27 pr=0 pw=0 time=0 us cost=21 size=1340 card=5)
24 INDEX RANGE SCAN T_N2_I (cr=3 pr=0 pw=0 time=0 us cost=1 size=0 card=20)(object id 61330)
注意:
只考虑访问路径层的数据,而不是整个SQL语句,因为SQL语句
层的数据可能会引起误导。
1.1 识别
• 举例:
select sum(n1) from t where n2246;
TKPROF输出内容摘要:
Rows Row Source Operation
1 SORT AGGREGATE (cr=389 pr=0 pw=0 time=0 us)
160 TABLE ACCESS FULL T (cr=389 pr=0 pw=0 time=6996 us cost=106 size=1256
card=157)
• 操作1 对操作2的结果使用了单行函数。结果,总是返回
单行而隐藏了访问路径的性能数据。
1.2 陷阱
• 检查logical read数量时,提防两个陷阱:
– 读一致性(read consistency)
– 行预取
1.2.1 read consistency
• 事物的读一致性:Undo
• 基于当前块以及回滚信息,数据块相同副本应该在运行时
创建。要运行这个操作,将产生若干个逻辑读。
• 参照实验read_cons
文档评论(0)