2011-12-23 148 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