sql数据库优化方法

sql数据库优化方法

ID:8982733

大小:81.50 KB

页数:8页

时间:2018-04-14

sql数据库优化方法_第1页
sql数据库优化方法_第2页
sql数据库优化方法_第3页
sql数据库优化方法_第4页
sql数据库优化方法_第5页
资源描述:

《sql数据库优化方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、SQL数据库优化方法SQL数据库优化方法ISQL数据库优化方法目录1系统优化介绍12外围优化13SQL优化23.1注释使用23.2对于事务的使用23.3对于与数据库的交互23.4对于SELECT*这样的语句,23.5尽量避免使用游标23.6尽量使用count(1)33.7IN和EXISTS33.8注意表之间连接的数据类型33.9尽量少用视图33.10没有必要时不要用DISTINCT和ORDERBY33.11避免相关子查询33.12代码离数据越近越好33.13插入大的二进制值到Image列43.14Between在某些时候比IN速度更快43

2、.15对Where条件字段修饰字段移到右边43.16在海量查询时尽量少用格式转换。43.17ISNULL与ISNOTNULL43.18建立临时表,43.19Where中索引的使用53.20外键关联的列应该建立索引53.21注意UNion和`UNionall的区别53.22Insert53.23orderby语句53.24技巧用例63.24.1Sql语句执行时间测试6ISQL数据库优化方法1系统优化介绍在我们的项目中,由于客户的使用时间较长或客户的数据量大,造成系统运行速度慢,系统性能下降就容易造成数据库阻塞。这是个非常痛苦的事情,用户的查

3、询、新增、修改等需要花很多时间,甚至造成系统死机的现象。速度慢的原因主要是来自于资源不足。数据库的优化通常可以通过对网络、硬件、操作系统、数据库参数和应用程序的优化来进行。最常见的优化手段就是对硬件的升级。根据统计,对网络、硬件、操作系统、数据库参数进行优化所获得的性能提升,全部加起来最多只占数据库系统性能提升的40%左右(我将此暂时称之为外围优化);其余大部分系统性能提升来自对应用程序的优化,对于应用程序的优化可以分为对源代码的优化及数据库SQL语句的优化。在本文档只介绍外围优化及SQL语句的优化,对于源代码的优化需要相关方面的专家,形

4、成统一的规范。一个数据库系统的生命周期可以分成:设计、开发和成品三个阶段。在设计阶段进行数据库性能优化的成本最低,收益最大。在成品阶段进行数据库性能优化的成本最高,收益最小。规范的代码和高性能的语句,功在平时,利在千秋。2外围优化1、将操作系统与SQL数据库的补丁打到最高版本,WIN2003最高补丁是SP4,SQLSERVER2000最高补丁是SP4(版本号:2039)。2、在服务器上不要安装与VA程序任何无相关的软件,甚至一些与VA运行无关的服务都可以停掉。一般只安装SQL数据库、VA服务端服务及杀毒软件。3、杀毒软件避免对大文件进行扫

5、描,特别是数据库(MDF和LDF)文件,一定要从杀毒软件的范围内排除掉。4、在进行服务器分区时,分区不要太多,两三个分区就可以了。分区最好都使用NTFS格式。第6页共8页SQL数据库优化方法1、定时对磁盘进行扫描和磁盘整理,减少系统文件错误及减少磁盘碎片,进行磁盘整理时最好不要使用WINDOWS本般的扫描功能(扫描之前一定要对数据库作异地备份)。2、可以考虑设置增大磁盘的缓存区,减少对磁盘的读写次数。3、升级硬件,整机使用更高配置的硬件。或者可以单独增加CPU个数、增大内存等。4、提高网速。1SQL优化1.1注释使用在语句中多写注释,注释

6、不影响SQL语句的执行效率。增加代码的可读性。1.2对于事务的使用尽量使事务处理达到最短,如果事务太长最好按功能将事务分开执行(如:可以让用户在界面上多几步操作)。事务太长很容易造成数据库阻塞,用户操作速度变慢或死机情况。1.3对于与数据库的交互尽量减少与数据库的交互次数。如果在前端程序写有循球访问数据库操作,最好写成将数据一次读到前端再进行处理或者写成存储过程在数据库端直接处理。1.4对于SELECT*这样的语句,不要使用SELECT*这样的语句,而应该使用SELECTtable1.column1这样的语句,明确指出要查询的列减少数据的

7、通讯量并且这样的代码可读性好,便于维护。1.5尽量避免使用游标第6页共8页SQL数据库优化方法它占用大量的资源。如果需要row-by-row地执行,尽量采用非光标技术,如:在客户端循环,用临时表,Table变量,用子查询,用Case语句等等。如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。1.1尽量使用count(1)count函数只有在统计表中所有行数时使用,而且count(1)比count(*)更有效率。1.2IN和EXISTS EXISTS要远比IN的效率高。里面关系到fulltablescan和rangescan。几乎

8、将所有的IN操作符子查询改写为使用EXISTS的子查询。1.3注意表之间连接的数据类型避免不同类型数据之间的连接。1.4尽量少用视图对视图操作比直接对表操作慢,可以用storedprocedu

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

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

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