论文天下|会计论文|管理论文|计算机论文|医药学论文|经济学论文|法学论文|社会学论文|文学论文|教育论文|理科论文|工科论文|艺术论文|哲学论文|文化论文|外语论文|格式论文
论文天下
计算机应用论文  计算机理论论文  计算机网络论文  电子商务论文  软件工程论文  操作系统论文  通信技术论文   
Oracle数据库的优化(1)

摘要 本文提出了一种优化rale数据库的方法。rale中SQL语句的执行过程可分为解析(Parse)、执行(Exeute)和提取结果(Feth)三步,此方法就是通过对SQL语句在rale数据库中优化执行的三个过程来提高rale数据库的性能。


关键词 数据库 扫描 多表联结 子查询

1 如何优化Parse
1. 1 SQL语句的Parse处理步骤:
1) 计算语句值
2) 共享池中有无与此语句值相同的语句?
3) 共享池中有与此语句字符完全匹配的语句?
4) 准备要运行的SQL语句
5) 为新语句在共享池中创建空间
6) 将语句存放在共享池中
7) 修改共享池图,标明语句的值和在共享池中的位置
8) 执行准备好的SQL语句
最理想的是,语句只执行1、2、3和8步来进行处理。不经过2、3步来测试被传给rale的语句要使用1~8步进行处理。只经过1、2、3、8的SQL语句要比经过1~8步的语句更为有效。
1.2 在共享池中重用SQL语句
当SQL语句被传递给rale处理时,其秘诀是重复使用已经在共享池中的语句,而不是让rale在接受语句时去准备新的语句。前面表明,如果rale接受了一个与共享池中的语句相一致的语句,就重用共享池中的语句。
rale提供在数据库中存储代码的能力。当应用系统开始运行时,从数据库中读取代码(可用PL/SQL语句编制)并像其它语句那样传递到共享池中去处理。从数据库中取出的代码是编译过的并驻留在共享池中。
可以利用数据库中存储的程序代码设计应用系统,检查所有的事务处理以及主要的通用的过程,研究现有的应用系统并把主要的处理程序转换为数据库中存储的程序代码。在rale中存储代码可以通过过程、程序包、函数、触发器等来实现。
2 如何优化Exeute和Feth
2.1 避免无计划的全表扫描
全表扫描连续从表读取所有数据,而不管数据是否与查询有关。避免不必要的全表扫描有两个充足理由:1)全表扫描没有选择性
2) 过全表扫描读取的数据很快从SGA的缓冲区移走(如果正在扫描的表不是“高速存储”的表)
在基于规则优化的情况下,如果下列任何条件在SGA语句出现,就要对一个表进行全表扫描。
1) 该表无索引
2) 对返回的行无任何限定条件(如无here语句)
3) 对数据表与任何索引主列相对应的行无限定条件。例如,在ity-State-Zip列上创建了三列复合索引,那么仅对State列有限定条件的查询不能使用这个索引,因为State不是索引的主列。
4) 对索引主列的行有限定条件,但条件或者是NULL或者是不相等。例如,ity列上存在索引,在所有下列情况下都不会使用索引。
here ity is null
here ity is nt null
here ity!=’lianing’
5) 对索引主列的行有限定条件,但条件在表达式里使用。例如,如果在ity列上索引,那么限定条件
here ity=’lianing’
可以使用索引。然而,如果限定条件是
here UPPER(ity)=’lianing’
那么不会使用ity列上的索引,因为ity列在UPPER函数里。如果将ity列与文本字符串联结在一起,也不会使用索引。例如,如果限定条件是
here ity||’x’ like ‘lianing%’
那么不会使用ity列上的索引。
6) 对索引主列的行有限定条件,但条件使用Like操作以及值以‘%’开始或者值是一个赋值变量。例如,在所有下列情况下都不会使用索引:
here ity like ‘%anin%’
here ity like :ity_Bind_Variable
如果表小、索引列无选择性,基于开销的优化器可能决定使用全表扫描。
2.2只使用选择性索引
索引的选择性是指索引列里不同值的数目与表中记录数的比。如果表有1000个记录,表索引列有950个不同值,那么这个索引的选择性就是950/1000或者0.95。最好的可能性选择是1.0。依据非空值列的唯一索引,通常其选择性为1.0。
如果使用基于开销的最优化,优化器不应该使用选择性不好的索引。

未完...点击下方链接下载完整文档

Oracle数据库的优化(1)

摘要 本文提出了一种优化rale数据库的方法。rale中SQL语句的执行过程可分为解析(Parse)、执行(Exeute)和提取结果(Feth)三步,此方法就是通过对SQL语句在rale数据库中优化执行的三个过程来提高rale数据库的性能。 关键词 数据库 扫描 多表联结 子查询 1
  • 上一篇:刍议防火墙的合理使用(1)
  • 下一篇:Visual C++中的开放数据库连接技术(1)
  • 浅谈行为引导教学方法在《计算机
    基于人工智能的银行信贷风险决策
    研究生阶段计算机网络理论课程教
    渐开线圆柱齿轮几何参数计算的计
    电子政务人员培训的问题与建议(1
    浅谈Intranet在现代企业中的应用
    青年教师在医学微生物学留学生教
    企业电子商务系统的规划与设计研
    有关计算机软件数据接口的应用研
    刍议防火墙的合理使用(1)
    面向对象数据库理论设想
    基于GP算法的知识发现系统
    光纤光缆和通信电缆技术发展与思
    大芯数OPGW在浙江电网的应用
    浅谈对程序开发中异常的理解和认
    专业出版社数据库人工智能改造
    非Access数据库在VB中的编程及
    优化程序长度的一种方法(1)
    VBA、Word和数据库的联合编程(
    Intel C++ 9.0编译器优化效果
    基于ASP.NET技术中数据
    主机DB2数据库课程的教学改
    计算机弱点数据库综述与评价
    数据库原理网上授课平台(一)
    关于数据库在仓库管理中的设计
    | 设为首页 | 加入收藏 | 联系我们 | 论文发表

    Copyright 2006-2020 © 论文天下 All rights reserved 本站所有内容均由SPider自动索引,如有侵权请联系QQ:2486851删除