0

我不是数据库专家,想问一下我遇到的问题。

有一个非常慢的 MS SQL Server 2008 R2 存储过程。它是如何工作的?

1) Stor. proc. takes 2 input parameters: beginDate and endDate (DATETIME)
2) The temporary table is created using: DECLARE @temp TABLE (columns)
3) INSERT INTO @temp SELECT columns FROM huge_view WHERE conditions1
4) INSERT INTO @temp SELECT columns FROM huge_view WHERE conditions2
5) SELECT columns FROM @temp GROUP BY columns ORDER BY columns

huge_view 有一些 INNER、LEFT 和 RIGHT JOINS。

我知道如果不看真实代码就很难说些什么,但也许有人可以给出一些指导。

4

1 回答 1

0
  1. 检查在 SQL Server 本身上运行时性能是否很慢,或者在客户端计算机上执行时是否很慢。如果仅从客户端计算机速度很慢,则网络是问题。
  2. 检查视图有多少数据。
  3. 检查表是否具有适用的主键、外键和约束。它们可以显着提高连接的性能。
  4. 运行 Database Tuning advisor 找出可以创建的其他索引和统计信息。
于 2013-06-14T08:25:53.413 回答