2011-12-23 111 views
0

我正在面对我的存储过程中的一些问题。Sql Server查询花费时间

我有一个堆栈条形图存储过程,显示一个月的数据。

早先在我的本地服务器上花了超过40秒,所以我做了一些修改,现在需要4秒钟。当我在我的实时服务器上运行时,相同的查询需要超过40秒。

记录数与我的本地服务器中的记录数相同。

有人可以告诉我我应该怎么做才能让它在现场服务器上更快?

+0

嗯。复制您在本地服务器上所做的更改? – 2011-12-23 06:18:36

+1

你有没有尝试过使用表上的索引? – 2011-12-23 06:18:55

+1

没有足够的信息 - 我们至少需要**:表结构,有关索引的信息,**精确**查询,数据分布(表中的数据类型)....... – 2011-12-23 06:26:10

回答

0

这是一个复杂的问题。这是一个很大的参数 可以改变的执行时间

CPU速度, 拉姆, 指数

0

假设服务器将在处理能力和RAM,指标方面更强大的东西,你想看看。

+0

我的桌子含有超过10000条记录。所以现在进行索引会影响性能? – Nipun 2011-12-23 06:54:08

+0

是的,它会使一切更快=) 添加实际索引只需要很少的时间。只要确保在那里放置一个RELEVANT索引。 (回答你的下一个问题:它取决于) – deroby 2011-12-23 10:51:58

+0

顺便说一句,可以粘贴示例查询,因为它只需要10k记录40秒,它有很大的性能改进的余地。 – 2011-12-23 14:40:15

-1

使用索引与您的mysql表,也可能是因为您的主机服务器的性能。服务器可能面临停机时间

1

一个好的开始是运行SQL Server Management Studio(SSMS),加载查询并打开“显示实际执行计划”,这将向您显示SQL查询的确切内容。它还会向您显示与查询中的步骤相关的相对“%成本”。这有助于识别导致查询花费这么长时间的哪个表/连接/聚合。

我也相信在最新版本的SSMS中建议应该添加哪些索引。

希望这会有所帮助。 丰富。

+0

我已清除服务器上该数据库的日志文件。但这是我所解决的临时解决方案。几天后,我必须再次去那里。给我一些永久的解决方案plz – Nipun 2012-01-05 07:18:11

+0

清除你的日志文件将在短期内有所帮助,但它不是解决你的主要问题。你是否按照我上面的建议尝试过?如果你查看执行计划,它可能会指出一些明显的事情。 – 2012-01-10 01:03:25