因为公司的项目在上线运行后遇到了数据库操作的性能问题,需要在不改动代码的情况下优化数据库性能,故查找了相关资料,现将心得写下.
1.数据库的性能瓶颈大多集中在查询语句,对于SQL SERVER而言,首先要使用事件查看器筛选出哪些SQL语句和存储过程存在性能问题.基本操作步骤是新建一个跟踪,输入登陆帐号和密码,在选择以何种方式保存查询得到的结果,可选方式有两种,即文件方式和数据库表方式,推荐采用后者.事件中选择SQL Completed,RPC Completed即可.筛选条件可过滤出需跟踪的对象.
2.观察一段时间,从跟踪的结果中找出这段时间内IO和时间占用最大的语句,并分析它们的执行频度.
3.使用查询分析器分解出SQL 语句的执行计划,并判断执行过程中是否使用了索引及索引是否得到充分利用.正常情况如果索引充分利用,执行步骤的名称会是index seek.注意:分析IO时需执行set statistics io on语句将IO分析打开.
4.根据分析结果,增加相应的索引,以后IO降低.
5.对于存储过程,应当使用事件查看器进一步过滤其信息,如果使用spid(可通过select @@spid获得),然后观察存储过程中哪一条语句的成本开销最大,然后对该条SQL语句进行优化,步骤同第三步.
参考资料:
1.
SQL Server性能调优入门(图文版)
(http://blog.joycode.com/juqiang/archive/2007/01/19/91848.aspx)