1 / 22
文档名称:

oracle优化-sql优化.pdf

格式:pdf   大小:572KB   页数:22页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

oracle优化-sql优化.pdf

上传人:755273190 2020/3/11 文件大小:572 KB

下载得到文件列表

oracle优化-sql优化.pdf

文档介绍

文档介绍:Oracle优化—SQL优化(?)Oracle优化—SQL优化1、数据库、数据表、数据表数据库、数据表、数据表I/O优化原则数据库规划原则最大可重用化数据库重大问题时,通过备份和恢复机制最大程度上恢复数据最小磁盘争用数据库文件平均分布在不同的磁盘上,避免多用户访问时争用同一磁盘各种数据的合理分布将数据库中的各种数据按特性(如基表和变化表、大数据和常规数据)存储在不同的文件中。数据表规划原则数据定义精确化满足要求的情况下,选择占用资源最少的数据类型以提高DBMS的I/O性能表的抽象化通过将具有共性的表合并,将其特性以标识字段表示表的范式化设计表时,满足1NF(原子性)、2NF(键相关性)、3NF(无函数相关性),保证表的结构无冗余数据表I/O优化原则变化表和基表的分离将变化表(递增性很强,如单据表、销售记录表)和基表(很少变化,如学生资源、班组资料等)分开存放到不同的数据文件中大数据和常规数据的分离将表的long、lob等大数据字段和其他常规类型字段分开存放,保证持续更新:./共同交流QQ:35720263Oracle优化—SQL优化(?)常规数据的查询高效性索引数据和表数据的分离将索引和表分离,减少磁盘争用;并提高索引的查询效率2、选用适合的ORACLE优化器优化器RBO/CBOOracle的优化器有两种优化方式,即基于规则的优化方式(Rule-BasedOptimization,简称为RBO)和基于代价的优化方式(Cost-BasedOptimization,简称为CBO),在Oracle8及以后的版本,Oracle强列推荐用CBO的方式。RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。CBO方式:它是看语句的代价(Cost),这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小、有少行、每行的长度等信息。这些统计信息起初在库内是没有的,是做analyze命令后才出现的,很多的时侯过期统计信息会令优化器做出一个错误的执行计划,因些应及时更新这些信息。注意:走索引不一定就是优的,比如一个表只有两行数据,一次IO就可以完成全表的检索,而此时走索引时则需要两次IO,这时全表扫描(fulltablescan)是最好Oracle优化模式包括:rule,choose,first_rows,all_rows,设置缺省的优化器,:基于规则的方式,不推荐用户使用RBO这种优化模式Choose:这个是Oracle的默认值。当一个表或索引有统计信息,则走CBO的方式,如果表或索引没有统计信息,表又不是特别的小,而且相应的列有索引时,那么就走索引,走RBO的方式持续更新:./共同交流QQ:35720263Oracle优化—SQL优化(?)first_rows:该选项的作用在于寻找能够在最短的时间内返回结果集的第一行的执行计划。设置为这种CBO模式以后,SQL语句返回结果的速度会尽可能的快,而不管系统全部的查询是否会耗时较长或者耗系统资源过多。由于利用索引会使查询速度加快,所以first_rows优化模式会在全表扫描上进行索引扫描。这种优化模式一般适合于一些OLTP(联机事务处理系统)系统,满足用户能够在较短时间内看到较小查询结果集的要求。all_rows:优化器将寻找能够在最短的时间内完成语句的执行计划。设置为这种CBO模式以后,将保证消耗的所有计算资源最小,尽管有时查询结束以后没有结果返回。all_rows的优化模式更倾向于全表扫描,而不是全索引扫描和利用索引排序,因此这种优化模式适合于数据查看实时性不是那么强的数据仓库、决策支持系统和面向批处理的数据库(batch-orienteddatabases)等。3、访问Table的方式ORACLE采用三种访问表中记录的方式:全表扫描、通过ROWID访问表、索引扫描全表扫描(fulltablescan)(databaseblock)(essbyROWI