mssql sql server 提升性能技巧的方法分享


摘要:
随着系统数据量的积累及用户的增多,访问量变大,sql server数据库如果不进行维护,那么使用起来会越来越慢。
下文主要讲述sql server性能提升技巧。
本文实验环境:windows10、sql server 2008 R2


前言:
如果一个系统(erp 网站),存在访问慢的情况
外部有很多客户会选择放弃访问
内部很多用户,会选择延缓使用系统,加大抱怨和不满,或者选择别的应用程序。

这些系统的异常,百分之90可以归结为,数据库速度慢而导致的。



sql 优化技巧1:使用”显示估计执行计划”,

例:

	  /*创建表*/
create table A(keyId int identity(1,1),
name varchar(30))
go 
SET STATISTICS PROFILE ON    --打开"执行计划"开关
GO
select top 1000 * from A(NolocK) 
GO  
SET STATISTICS PROFILE OFF   --关闭"执行计划"开关 
go
truncate table A
drop     table A 
go 
	

上文中 “SET STATISTICS PROFILE ON” 关键字,可以在sql脚本中,生成执行计划,如下图所示:

执行计划中,返回了脚本的执行顺序和每个步骤的执行操作种类,及逻辑读 物理读的基本数据,我们可以分析这些数据来决定这个执行计划是否合理,
是否可以通过简单的建立索引来达到优化脚本的目的



sql 优化技巧2:创建正确的索引

索引的功能: 检查查询扫描的页数,使每次查询可以精准的查询到数据库的相关页上面。
数据库索引类似于图书索引,它单独保存在指定的位置,包含一些指定列的信息,按照一定的顺序存放着,当我们通过索引定位到相关数据时,如果索引相关信息不包含列数据,那么索引会找到数据的存储位置,返回返回相应的数据。
如果一个系统没有建立任何索引,那么每次数据查询都会执行全表扫描,会导致很多不必要的访问,索引功能就是采用空间换时间的提速做法。
在DB上建立合适的索引,会使系统运行快,但是过多的不合理的索引,会导致系统插入速度变慢,存储空间加大。



sql 优化技巧3:DB服务器合理的配置

mssql sql server有大量的自身DB设置参数,为了使数据库达到最优,我们需要对数据库进行相关设置,
例:
缓存占用内存设置
时间格式设置
默认建表是否允许空列
统计信息的更新设置
最大连接数的设定



sql 优化技巧4:特定数据缓存在内存中

由于计算机的IO设置的特点,如果我们将数据缓存至内存中,那么就会减少物理读的次数,减少IO的交互,加快数据的访问速度



sql 优化技巧5:采用更快的计算机硬盘

并不是所有的数据都适合放入内存,因为一旦计算机停电,那么内存数据就会消失,所以我们还需将需要永久保存的数据,放入硬盘上,
此时我们就需要采用更快的计算机硬盘来加快DB服务器对数据的读写能力。



sql 优化技巧6:数据库结构的变化

当我们采用了以上所有办法,但是由于数据库的访问量巨大,已经无法通过硬件来满足提速的时候,我们需要通过改变数据库的结构,
使不同的用户分流到不同的硬件上,来达到数据库优化的目的。



sql 优化技巧7:数据库运维工具

各种数据库优化技巧都使用之后,我们需要通过设置合理的数据库观测工具(监控工具),来对运行的服务器进行监控,一旦发现CPU IO读写比,产生大量硬盘读,这些异常警报时,
我们应该采用以上的sql技巧优化相应的模块。