性能优化探讨与分析:
性能优化探讨与分析:
1、首先, SQL SERVER(与所有DBMS一样)具有特定的硬件建议。在学习和研究SQL SERVER时,使用任何旧的计算机作为服务器都可以。
但对用于生产的服务器来说,应该坚持遵循这些硬件建议。
2、一般来说,关键的生产DBMS应该运行在自己的专用服务器上。
3、SQL SERVER是用一系列的默认设置预告配置好的,从这些设置开始通常是很好的。但过一段时间后你可能需要调整内存分配、缓冲区大小等。
4、SQL SERVER 一个多用户多线程的DBMS,换言之,它经常同时执行多个任务。如果这些任务中的某一个执行缓慢,则所有请求都会执行缓慢。
你可以使用WINDOWS Systems Monitor 监视 SQL Server的磁盘以及内存使用、关键事件的更改等。
5、总是有不止一种方法编程同一条SELECT 语句。应该试验联结、并、子查询等。找出最佳的方法
6、在SQL SERVER处理T-SQL语句时,SQL SERVER试图优化T-SQL,把请求适当地分解为更小的请求,使用索引,等等。理解SQL SERVER所做的工作,
能够确定批量语句或存储过程的特定部分所花的处理时间,这些对于优化性能极为重要。SQL SERVER能报告己提交的SQL 语句使用的执行计划。
这个选项可以Microsoft SQL Server Management Studio (sql server 05+ )和Enterprise Manager(早期版本)中得到
7、一般来说,存储过程执行得比一条一条地执行其中的各条SQL SERVER 语句块
8、应该总是使用正确的数据类型
9、决不要检索比需求还要多的数据。换言之,不要用SELECT * (除非你真正需要每个列)
10、必须索引数据库表以改善数据检索的性能。确定索引什么不是一件微不足道的任务,需要分析使用的SELECT 语句以找出重复的WHERE 和ORDER BY
子句。如果一个简单的WHERE 子句返回结果所花的时间太长,则可以断定其中使用的列(或几个列)就是需要索引的对象。
11、你的SELECT 语句中有一系列复杂的OR 条件吗?通过使用多条SELECT 语句和连接它们的UNION语句,你能看到极大的性能改进
12、索引改善数据检索的性能,但损害数据插入、删除和更新的性能。如果你有一些表,它们收集数据且不经常被搜索,则在有必要之前不要索引它们。
(索引可根据需要添加和删除)
13、LIKE很慢。一般来说,最好是使用FREETEXT 或CONTAINS进行全文本搜索
14、数据库是不断变化的实体。一组优化良好的表一会儿可能就面目全非了。由于表的使用和内容的更改,理解的优化和配置也会改变
15、更重要的规则就是,每条规则在某些上都会被打破。
---摘自《SQL SERVER编程必知必会》