2011-02-14 105 views
1

我使用SQL Server 2008和我需要优化我的queries.For为此我使用的数据库引擎优化顾问。SQL查询优化

我的问题是我可以检查一次只有一个SQL查询的性能还是多于一个新的会话?

+0

你还应该用SQL Profiler - http://msdn.microsoft弄脏你的手。com/en-us/library/ms181091.aspx – StuartLC 2011-02-14 10:31:15

+0

但我所要求的是......我可以检查一次只有一个SQL查询的性能,或者多于一个新的会话吗? – 2011-02-14 10:36:36

回答

2

要分析一个查询同时右键单击它在SSMS脚本窗口,选择选项“分析查询在DTA”对于这个工作负载选择选项“保留所有现有PDS”,以避免指标drop建议负荷不通过检查中的查询中使用。

要做多个人首先捕获具有代表性工作负载样本的跟踪文件,然后您可以使用DTA分析该文件。

0

当写SQL查询有必须遵循简单的步骤: -

1-Take的列名在SELECT查询,而不是*

2,避免子查询

3-避免使用操作者IN操作

4-使用具有如在组的过滤器通过

5-Don不将图像保存到数据库中而不是保存图像 数据库中的路径例如:在数据库中保存或检索图像时,将图像保存在数据库中需要占用大量空间,并且每个时间都需要序列化。

6-每个表都应有一个主键

7-每个表都应有一个最小的一个簇索引

8每个表应具有的非聚集索引非聚集适量索引应在基于正在运行的查询的表的列上创建

9-应遵循以下优先顺序,当任何索引为 时,应创建a)WHERE子句,b)JOIN子句,c)ORDER BY子句,d) SELECT子句

10不要使用次数或替换原始源表视图

11-触发器不应该被尽可能使用,包括 触发的在存储过程中的逻辑

12中删除任何即席查询和调用存储过程代替

13检查是否有ATLEAST 30%HHD是空的这将是提高性能有点

14如果可能的话移动UDF的逻辑到SP以及

15取下表

16如果在查询中使用光标,看看是否有任何其他的方法来避免使用这种 的(或者通过SELECT ... INTO或INSERT ... INTO任何不必要的连接,等)