ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:23.50KB ,
资源ID:1781964      下载积分:8 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1781964.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SQL SERVER数据库性能优化探讨.doc)为本站会员(99****p)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

SQL SERVER数据库性能优化探讨.doc

1、SQL SERVER 数据库性能优化探讨摘 要:本文从 SQL SERVER 数据库的范式优化、查询优化、索引优化等方面出发,对数据库的性能优化方法进行探讨,总结了数据库优化应遵循的方法,力图提高 SQL 语句的执行效率。 数据库技术的应用已由传统数据处理发展至图像处理、商业决策管理等更多的新兴领域,而这些新兴领域对信息系统的高效、安全、稳定的性能要求更高。如何有效组织及处理数据库中的海量数据, 保证系统吞吐量, 成为数据库优化的首要任务。本文针对数据库优化技术探索合适的方法,从范式优化、查询优化、索引优化等多个方面进行探讨,希望可以通过这些优化使信息系统更适用于人们的需求。 1 合理使用范式

2、 关系模式规范化的目的是为了消除存储异常、减少数据冗余,解决数据插入异常、删除异常,保证数据完整性(即正确性和一致性)和存储效率。但是把数据库分解得越多,就会造成查询时的时间浪费。通常认为当一个关系模式可以达到 3NF(第三范式)或 BCNF 时,就具有了合理的结构及良好的性能。当关系规范化达到 BCNF 时, 虽然可以消除数据冗余太异常, 但却可能会破坏了数据语义。所以,我们在设计时要先尽可能设计为 BCNF,如果这时 BCNF 不到保持函数依赖的要求,破坏了数据语义,就应该则降低为 3NF。在这里,3NF 是指所有的非主属性都完全依赖主属性且不传递于主属性。一般情况下当数据库符合 3NF

3、后,通常就能很好的达到关系模式规范化的目的,它可以从根本上消除了数据冗余和数据不一致的问题。当然,使用了第三范式设计数据库后,还需要对表或者相关数据的结构及性能进行全面调整和优化。 2 采用视图方式 在一些数据量较大的表中,可能只有小部分数据会被访问,而且是被频繁的访问。这时,我们就可以采用视图方式,把这部分数据建立为视图。有时,又会有一些数据需要针对不同角色有不同权限的开放,那么这些数据也可以做成视图,并给视图赋予不同的权限,这就可以从一定程度上保证了数据的安全性。 3 建立存储过程 SQL Server 中存储过程是 SQL 语句和流程控制语句的集合。工作中,当某些操作需要使用大量重复的计

4、算时,我们就可以合理使用存储过程储存这些操作,完成软件复用,实现高性能的数据操作。同时,我们在使用存储过程后,还能能过隔离和加密的方法提高数据库的安全性。 4 使用索引优化数据库 应用数据库中会存储海量的数据表,人们对其做查询操作时,若进行全表扫描,会占用相当长的时间。索引与字典的目录类似,是数据库中重要的数据结构,它可以通过关键值指向表中的数据行。通过合理地创建并使用索引,可以避免上述全表扫描,提高数据查询的效率,可以减少由于连接造成的资源浪费,优化数据库性能。我们可以在表或视图的一列或是多列上建索引,也可以在两列或多列上建立复合索引。但是,索引在数据库中会占用存储空间,会牺牲系统性能,会在

5、时间和空间方面带来负面影响,因为表越大,索引也就越大。当一个含有索引的表中数据行被更新时,索引也同样需要更新,需要及时反映数据的变化。在含有索引的表中进行插入、更新和删除的操作时,速度可能会被影响。所以,在创建索引时必须考虑实际数据库的查询需求,以实现基于索引的数据库优化。 在建立索引时,应该找到平衡点,注意以下问题: (1)如果处理的关系表比较小, 就不需要建立索引。因为直接遍历整个表用的时间并不多, 建立索引反而加重了系统负担。 (2)若表里的数据常会频繁更新, 那么维护索引也将非常频繁, 如果这些工作量超出了索引带给我们的查询优势, 则还不如不使用索引。(3)索引分为聚集索引和非聚集索引

6、。聚集索引的物理存储按照索引排序。非聚集索引的物理存储不按照索引排序。聚集索引在插入数据的时候,所花费在“物理存储的排序” 时间上较长,但查询数据的速度会比查询非聚集数据的速度快。在建立时应考虑: (4)不在 where 子句中进行表达式运算操作(如加减乘除)及函数操作。因为上述操作会使查询放弃使用索引。 (5)创建及使用触发器和存储过程时,开始处进行“SET NOCOUNT ON” 的设置,结束时进行“SET NOCOUNT OFF” 设置,以减少服务器向客户机发送信息造成的空间上和时间上的浪费。 (6)尽量分解大事务为小事务,提高系统的并发能力。 (7)小范围内进行查询时,子查询会比连接查

7、询效率高。子查询是指在 WHERE 或 HAVING 子句中又包含了一个 SELECT 语句。 例如,SELECT * FROM 课程表 WHERE 报名人数(SELECT AVG(报名人数) FROM 课程表) 语句在执行时由内到外逐层执行,小范围内效率较高。但如果大范围内使用了嵌套,且查询嵌套层次越多, 效率越低, 子查询会比连接查询效率低。 (8)如果 IN 能用 BETWEEN 代替就用 BETWEEN。因为 BETWEEN 会使用索引,但 IN 不会用索引。 (9)FROM 子句中选择合适的表序 SQL 语句 FROM 子句中的表名有时会是多张表, SQL Server 在对表名进行解析时,会按照自右至左的顺序处理,也就是写在最后的表将被最先处理。所以,若 FROM 子句中包含多表则应该选择记录行最少的表要写在 FROM 子句的最后。 6 结论 优化数据库可以明显提高计算机系统效率,具有非常深远的意义。在数据库设计阶段对逻辑结构进行合理化优化,可获得系统的较小开销,从根本上提高系统的整体性能。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。