分类筛选
分类筛选:

关于性能优化论文范文资料 与数据库查询处理性能优化有关论文参考文献

版权:原创标记原创 主题:性能优化范文 科目:本科论文 2024-02-16

《数据库查询处理性能优化》:此文是一篇性能优化论文范文,为你的毕业论文写作提供有价值的参考。

摘 要:数据库系统是管理系统的核心.在实际应用中,许多应用软件都需要频繁地对数据库进行查询操作.数据库的性能直接受到SQL语句、数据库结构的影响.查询优化对于数据库的性能,特别是对于大型数据库的性能至关重要.本文将和大家探讨,通过优化SQL语句、创建临时表、优化存储过程、优化索引等提高数据库查询效率的方法.

关键字:数据库;查询;优化

目前,随着计算机技术的发展,各种软件的应用和普及,几乎所有的应用程序都需要数据库的支持,数据库的重要性日益凸显.在数据库的开发过程中,如果在开始阶段不注重查询优化技术,随着数据库表中记录量越来越大,系统的响应速度会越来越慢,最终导致系统被淘汰.相反,良好的数据库设计会大大提高其运行效率,最大限度减少冗余,缩短查询时间.数据库的优化方法很多,不同的方法也会直接影响数据库的查询效率.笔者在此介绍几种常用的数据库查询优化方法,希望能和大家共同探讨.

一、优化SQL语句

对于SQL语句优化有以下的直接原因.SQL语句是数据库操作的唯一途径,应用程序的执行最终要归结为SQL语句的执行,SQL语句的执行效率对数据库系统的性能起到了重要的作用.SQL语句相对于程序设计逻辑是独立的,优化SQL语句对程序逻辑不会产生影响,在时间成本和风险上的代价都很低.SQL语句可以有不同的写法,不同的写法在性能上的差异可能很大.准确地使用SQL语句,可以大幅度提高索引中数据的查询速度,下面就举例说明.

(一)在查询时,查询值要等于返回值.在查询中不要过多使用“通配符”,从而减少对数据库中的表的访问量,缩小查询范围,节省时间.如:select * from table1 语句,最小化查询到某行某列,如:select col1 from table1;因为一般的查询是不必查询所有库内的数据的,如select top 50 col1 from table1.

① select sum(t1.c1)from t1

where((select count(*)from t2 where t2.c2 等于 t1.c2)>0)

② select sum(t1.c1)from t1

where exists(select * from t2 where t2.c2 等于 t1.c1)

结果是不一样的,但②的效率比①高很多,因为②在查询中大量缩减了索引扫描范围.可见,选择准确的字句可大大提高查询效率.

(二)选择使用特殊SQL语句,如EXISTS,NOT EXISTS.尽量避免在where子句中使用in,not in,or或者having.使用or会导致全表扫描.可以用EXIST和NOT EXISTS代替in和not in;union来代替or,having可以用where代替,如果无法代替可以分两步处理.例如:

① select column1,column2 from table1

where column5 等于 ‘2010’ or column6 >5900;

② select column1,column2 from table1

where column5 等于 ‘2010’

union

select column1,column2 from table1

where column6 >5900;

语句②可以代替①,而且比①效率高.

③ select sum(t1,c1) from t1

where ((select count(*) from t2 where t2.c2 等于 t1.c2) >0)

④ select sum(t1,c1) from t1

where exists (select * from t2 where t2.c2 等于 t1.c2)

语句④的效率比③高很多,因为③的查询中大量缩减了索引扫描范围.

(三)一个列的标签如果在主查询和where条件子句的查询中同时出现,那么很可能当主查询中的列值改变之后,子查询必须重新查询一次,查询嵌套层次越多,效率越低,因此应当尽量避免子查询.如果子查询不可避免,那么要在子查询中过滤掉尽可能多的行.

(四)尽量避免在where子句中对字段进行null值判断和使用!等于或<>操作符,否则将放弃使用索引而进行全表扫描.

(五)关键字LIKE支持通配符匹配,但是这特别耗费时间.比如,select * from table1 where t1 LIKE “98_ _”,即使在t1字段上建立了索引,在这种情况下,还是使用顺序扫描的方式.但是,如果语句改成:select * from table1 where t1 >”98000”,在执行时候就会用索引来查询,大大提高了查询速度.

二、创建建临时表

使用临时表最明显的一个好处就是可以提高数据库的性能,特别是查询的性能.临时表是用来存放临时记录的,同时,临时表还可以进行预处理计算,如果发现基本表中的索引不合适,也可以在临时表中重新创建索引以优化原有的索引.特别是当需要多次访问某个表或者视图的时候,利用临时表来组织数据是一个提高效率的好方法.即使只是一个简单的查询,其效率的提升也是很明显的.另外使用临时表还可以减少中间表的产生.在进行某些操作时,本来往往需要一些中间表的帮助才可以完成,而现在数据库管理员可以让数据库在需要时自动生成中间表,并在用完后进行自动删除.如此的话,中间表的建立和删除就不需要数据库管理员人为的管理了,这样既减少数据库系统中的垃圾表,也可以降低用户的工作量.需要注意的是临时表的创建需要比主表行数少,减少输入和输出,降低临时表的访问量,提高其查询效率.

性能优化论文参考资料:

结论:数据库查询处理性能优化为关于本文可作为相关专业性能优化论文写作研究的大学硕士与本科毕业论文android性能优化论文开题报告范文和职称论文参考文献资料。

和你相关的