
Oracle数据库SQL查询语句优化方法研究——毕业论文.ppt
11页Oracle数据库SQL查询语句优化方法研究,研究背景 研究思路 研究成果,研究背景,数据库自从成为最常用的数据管理方式以后,逐步向数据结构日渐复杂、数据量日渐庞大、应用场合日渐广泛的方向迅速发展和完善数据库与应用软件的紧密结合使用户对数据库性能的需求逐渐提高,尤其是在海量存储的数据库系统中变得愈加明显除了软件和硬件条件本身的限制外,数据库中查询语句的执行效率也是影响其性能的关键因素,SQL语句的执行消耗大部分的数据库资源,包括CPU消耗、内存消耗、物理块读取消耗等,因此有必要对SQL语句进行优化调整,对提升数据库性能有重要的意义 据不完全统计,当升级硬件和修改网络、操作系统、数据库参数这些方法进行优化后加起来只能提升系统性能的40%左右,其余的60%要靠对应用程序的优化,包括源代码优化和SQL优化源代码优化代价较大,涉及到系统设计和开发,且与数据库性能优化关系不大,主要表现在SQL优化Oracle Database,Oracle数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一,是目前世界上使用最为广泛的数据库管理系统。
Oracle11g是甲骨文公司在2007年年7月12日推出的数据库软件,Oracle 11g有400多项功能,经过了1500万个小时的测试,开发工作量达到了3.6万人/月相对过往版本而言,Oracle 11g在数据库管理部分,PLSQL部分和其他部分,有了与众不同的特性SQL语言,结构化查询语言(英文:Structured Query Language,缩写SQL)是一种数据库查询和程序设计语言,用于数据库中的标准数据查询语言,IBM 公司最早使用在其开发的数据库系统中1986年10月,美国国家标准学会(ANSI) 对 SQL 进行规范后,以此作为关系式数据库管理系统的标准语言 (ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准不过各种通行的数据库系统在其实践过程中都对 SQL 规范作了某些编改和扩充结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统PL/SQLDeveloper,PL/SQLDeveloper是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。
如今,有越来越多的商业逻辑和应用逻辑转向了OracleServer,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分PL/SQLDeveloper侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势 在本次的研究课题中,我们使用这个集成环境作为数据库的查询器研究思路,怎么去优化? 优化的切入点在哪?,虽然优化的是SQL语句,但是研究要回归Oracle本身,,开销的计算方法,Cost=(#srds*sreadtm+#mrds*mreadtm+#cpucycles/cpuspeed)/sreadtm. srds:每次读取单位数据块的数量;sreadtm:读取单位数据块的时间 mrds:每次读取多数据块的数量;mreadtm:读取多数据块的时间; cpucycles:CPU的总周期数;cpuspeed:一秒钟CPU的周期数,研究成果,(1) 避免在索引列字段上使用not、、null、!=符号,避免使用隐式的类型转换 (2) 避免在索引列字段上使用改变列的函数 (3) 限制使用select * from table这种方式 (4) 使用绑定变量的方式进行传值。
(5) 尽量使用union all代替union (6) 合理建立索引 (7) 当查询条件中的查询条件是组合索引时,查询条件中不能缺少前导列 (8) 使用where替换having子句谢谢!!!,。
