SQLServer性能提高的方法(转)
2009-01-04 09:33
232 查看
1:不要在列上使用函数,可以在标量上使用函数
如 WHERE DATEADD(day, 15, OrderDate) = '07/23/1996'改成OrderDate = DATEADD(day, -15, '07/23/1996');
2:不要声明一个char变量去和nchar列去比较,相反nvarcha和varchar也一样,在比较的时候会隐式使用Convert函数,进而可能无法使用索引。
3:不必要的表不要join进来;尽量避免使用DISTINCT从句
4:select * 不仅会加大网络流量,而且更容易引起表扫描;使用where语句来限制你返回的行,对大结果集进行分页返回, 仅仅返回你需要的行和列
5:like后面不要跟前面是通配符的单词;像<>和not like等谓词尽量少用,尽量用IF EXISTS和IF NOT EXISTS来取代,这样可以使用索引
6:存储过程的好处:逻辑分离,把业务逻辑和数据处理逻辑分离;调整SQL语句不需要重新部署程序;减少网络带宽;提高安全性和集成性,可以给存储过程指派访问权限等[不确定是否可以];参数化查询可以防止SQL注入;防止查询计划重编译
7:游标的使用会反复提取行,加锁,管理锁,返回行等一系列操作,要用也尽量用只读向前游标,少用火线游标,它们会增加对tempdb的压力[不确定]。通常游标用来处理连续的行,如果这个表有主键,可以用一个while语句来取代游标的使用
8:事务在开始后会锁定资源以防止其他事务执行,所以要保持事务尽量短。可以在应用里开始一个事务,常用的做法是在开始事务前验证数据的有效性,当然在事务里也需要验证数据,但这已经避免了好多可能在事务里回滚的机会
9:
如 WHERE DATEADD(day, 15, OrderDate) = '07/23/1996'改成OrderDate = DATEADD(day, -15, '07/23/1996');
2:不要声明一个char变量去和nchar列去比较,相反nvarcha和varchar也一样,在比较的时候会隐式使用Convert函数,进而可能无法使用索引。
3:不必要的表不要join进来;尽量避免使用DISTINCT从句
4:select * 不仅会加大网络流量,而且更容易引起表扫描;使用where语句来限制你返回的行,对大结果集进行分页返回, 仅仅返回你需要的行和列
5:like后面不要跟前面是通配符的单词;像<>和not like等谓词尽量少用,尽量用IF EXISTS和IF NOT EXISTS来取代,这样可以使用索引
6:存储过程的好处:逻辑分离,把业务逻辑和数据处理逻辑分离;调整SQL语句不需要重新部署程序;减少网络带宽;提高安全性和集成性,可以给存储过程指派访问权限等[不确定是否可以];参数化查询可以防止SQL注入;防止查询计划重编译
7:游标的使用会反复提取行,加锁,管理锁,返回行等一系列操作,要用也尽量用只读向前游标,少用火线游标,它们会增加对tempdb的压力[不确定]。通常游标用来处理连续的行,如果这个表有主键,可以用一个while语句来取代游标的使用
8:事务在开始后会锁定资源以防止其他事务执行,所以要保持事务尽量短。可以在应用里开始一个事务,常用的做法是在开始事务前验证数据的有效性,当然在事务里也需要验证数据,但这已经避免了好多可能在事务里回滚的机会
9:
相关文章推荐
- SQLServer 中提高查询性能的方法
- SQLServer 中提高查询性能的方法
- sqlserver 中提高查询性能的方法
- sqlserver 中提高查询性能的方法
- 五种提高 SQL 性能的方法
- 性能调优之提高 ASP.NET Web 应用性能的 24 种方法和技巧
- Java编程提高性能的26个方法
- 五种提高 SQL 性能的方法
- [分享]五种提高 SQL 性能的方法
- [转]SQLServer SQL执行效率和性能测试方法总结
- 提高 ASP.NET Web 应用性能的 24 种方法和技巧
- 五种提高 SQL 性能的方法
- 五种提高 SQL 性能的方法
- flash开发中提高性能方法的整理(分享)
- 五种提高SQL Server性能的方法
- Asp.net性能优化-提高ASP.Net应用程序性能的十大方法
- 提高ASP.Net应用程序性能的十大方法
- 五种提高 SQL 性能的方法
- 读msdn文档----五种提高SQL性能的方法
- CSS 优化、提高性能的方法有哪些?