WEB开发网
开发学院数据库MSSQL Server SQL Server性能优化综述 阅读

SQL Server性能优化综述

 2008-08-27 09:57:43 来源:WEB开发网   
核心提示: A、横向来看,不要写SELECT *的语句,SQL Server性能优化综述(5),而是选择你需要的字段,B、 纵向来看,它有原子性、一致性、隔离性、持久性这四个属性,很多操作我们都需要利用事务来保证数据的正确性,合理写WHERE子句,不要写没有WHERE的SQL语句

A、横向来看,不要写SELECT *的语句,而是选择你需要的字段。

B、 纵向来看,合理写WHERE子句,不要写没有WHERE的SQL语句。

C、 注意SELECT INTO后的WHERE子句,因为SELECT INTO把数据插入到临时表,这个过程会锁定一些系统表,如果这个WHERE子句返回的数据过多或者速度太慢,会造成系统表长期锁定,诸塞其他进程。

D、对于聚合查询,可以用HAVING子句进一步限定返回的行。

2、 尽量少做重复的工作

这一点和上一点的目的是一样的,就是尽量减少无效工作,但是这一点的侧重点在客户端程序,需要注意的如下:

A、 控制同一语句的多次执行,特别是一些基础数据的多次执行是很多程序员很少注意的。

B、 减少多次的数据转换,也许需要数据转换是设计的问题,但是减少次数是程序员可以做到的。

C、 杜绝不必要的子查询和连接表,子查询在执行计划一般解释成外连接,多余的连接表带来额外的开销。

D、 合并对同一表同一条件的多次UPDATE,比如

   UPDATEEMPLOYEESETFNAME=’HAIWER’WHEREEMP_ID=’VPA30890F’
UPDATEEMPLOYEESETLNAME=’YANG’WHEREEMP_ID=’VPA30890F’

这两个语句应该合并成以下一个语句

   UPDATEEMPLOYEESETFNAME=’HAIWER’,LNAME=’YANG’
WHEREEMP_ID=’VPA30890F’

E、 UPDATE操作不要拆成DELETE操作+INSERT操作的形式,虽然功能相同,但是性能差别是很大的。

F、 不要写一些没有意义的查询,比如

 SELECT*FROMEMPLOYEEWHERE1=2

3、 注意事务和锁

事务是数据库应用中和重要的工具,它有原子性、一致性、隔离性、持久性这四个属性,很多操作我们都需要利用事务来保证数据的正确性。在使用事务中我们需要做到尽量避免死锁、尽量减少阻塞。具体以下方面需要特别注意:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:SQL Server 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接