SQL实用简明教程(课件) 教学课件 作者 7-302-08932-9kCHAP11.ppt

SQL实用简明教程(课件) 教学课件 作者 7-302-08932-9kCHAP11.ppt

ID:50028395

大小:334.50 KB

页数:11页

时间:2020-03-07

SQL实用简明教程(课件) 教学课件 作者 7-302-08932-9kCHAP11.ppt_第1页
SQL实用简明教程(课件) 教学课件 作者 7-302-08932-9kCHAP11.ppt_第2页
SQL实用简明教程(课件) 教学课件 作者 7-302-08932-9kCHAP11.ppt_第3页
SQL实用简明教程(课件) 教学课件 作者 7-302-08932-9kCHAP11.ppt_第4页
SQL实用简明教程(课件) 教学课件 作者 7-302-08932-9kCHAP11.ppt_第5页
资源描述:

《SQL实用简明教程(课件) 教学课件 作者 7-302-08932-9kCHAP11.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章数据库性能和SQL的优化重点内容:数据库性能优化SQL语句优化查询优化一、数据库性能1、影响数据库性能的因素影响基于SQL的数据库系统性能的常见因素如下:(1)SQL语句的使用不当(2)没有经常使用COMMIT命令(3)有太多并发用户(4)过多使用批量装载(5)运行批量装载时使用索引(6)将索引建立在存储有大量重复数值的列上(7)在小表上建立索引(8)大小不合理的表和索引(9)服务器上可用资源的浪费(10)系统资源的管理不善一、数据库性能2、基准测试通过基准测试可以测量一个数据库系统的性能,比如,它可以测试该系统每秒钟传送的事务量的大小。基准测试拥有一组

2、在可控制的环境中测量数据库系统性能的标准方法,也叫基准程序,它是非常复杂的技术。基准程序的技术细节不属于本书的讨论范围,本节也只给予基准测试的作用的最简单介绍。基准测试主要针对用于任务型应用程序的数据库系统,这些任务型应用程序面向许多的用户,并且包括大型的数据库。现在数据库市场上有许多的数据库系统产品,它们都有各自的特点。选择合适自己的数据库系统就要使用到基准测试了,有了它,我们就可以将对各数据库产品进行性能上的比较,作出合适的选择了。一、数据库性能3、监控和提高性能的工具大多数的数据库管理系统,特别是为面向产品、多用户的在线应用程序开发的关系型数据库管理系统,

3、都有提供多种监控和提高性能的工具。一个数据库系统每次执行数据操作任务时,都会先为这次操作任务创建“执行计划”,接着,数据库按照执行计划的安排来进行操作。执行计划其实是一个数据操作任务中的所有单独操作构成的列表。监控和提高性能的工具可以通过查看这些执行计划,并且判断是否应该对这些执行计划进行优化来实现它们监控和提高数据库系统性能的功能。不同类型的数据库系统提供的监控和提高系统性能的工具有些差别。在Oracle数据库系统中,有两种方式可以查看一项特定查询的执行计划:如果想在查询操作执行完后查看执行计划,使用SETAUTOTRACEON命令,在查询语句运行前查看执行计

4、划使用EXPLAINPLAN命令。不想查看时,使用SETAUTOTRACEOFF来关闭自动跟踪摄制。在Transact-SQL中,可以打开支持显示执行计划的SHOWPLAN设置,使用命令:SETSHOWPLANON。但是,在MicrosoftSQLServer数据库系统中,使用变量SETSHOWPLAN_ALL和SETSHOWPLAN_TEXT来代替SETSHOWPLAN。二、提高SQL语句可读性让编写的程序代码具有很好的可读性是必须养成的一个编程习惯,即使它并不能提高SQL语句的执行效率。因为只有具备了好的可读性,将来由自己或者是其他人对程序进行修改和完善时才

5、能够顺利,毕竟,谁都不能保证自己编写的语句完美得以后肯定不会被修改。SELECTEmployee.name,Employee.sex,Employee.id,Employee.birthday,Employee.salary,Department.Dname,Department.DNUMBERFROMEmployee,DepartmentWHEREEmployee.id=Department.MGRidANDEmployee.sex=’男’AND(SUBSTR(TO_CHAR(Employee.birthday,’MMDD,YYYY’),1,2)=’10’OR

6、SUBSTR(TO_CHAR(Employee.birthday,’MMDD,YYYY’),1,2)=’11’ORSUBSTR(TO_CHAR(Employee.birthday,’MMDD,YYYY’),1,2)=’12’)SELECTe.name,e.sex,e.id,e.birthday,e.salary,d.Dname,d.DNUMBERFROMEmployeee,DepartmentdWHEREe.id=d.MGRidANDe.sex=’男’AND(SUBSTR(TO_CHAR(e.birthday,’MMDD,YYYY’),1,2)=’10’ORSU

7、BSTR(TO_CHAR(e.birthday,’MMDD,YYYY’),1,2)=’11’ORSUBSTR(TO_CHAR(e.birthday,’MMDD,YYYY’),1,2)=’12’)未优化优化后三、避免扫描整个表大型数据库中的数据表的规模都比较大,如果每执行一条SQL语句都要在数据库中扫描一整张表,就会影响SQL语句的性能。比如,只是为了查找一条合适的记录而扫描一个规模相当大的,有几百万个记录的表,这就好像从头到尾读一本没有目录的书去查找一个关键字一样,是非常没有效率的。假如能够采取某种措施,为表中的一个合适的列建立索引,就可以尽量避免扫描表中的所有

8、记录,提高了语句的执行效

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。