2011-07-26 168 views
1

我們已經將我們的少數serevr遷移到命名實例,並且存在一個存儲過程需要更多時間執行的情況。 存儲過程有一些指向表的商業邏輯。我在桌上有索引。我懷疑在兩個不同的生產數據庫中採用不同的時間在同一表上使用相同的存儲過程。我知道數據庫執行取決於加載到數據庫上。但我在非商業時間進行治療,我認爲負荷也差不多。它在新的命名instancwe服務器上執行10秒,在舊服務器上執行3秒。我是否需要在新服務器中對錶格進行碎片整理?它會解決問題嗎?任何想法如何檢查新服務器的問題。SQL Server 2000查詢性能

編輯:當我檢查執行計劃時,它給予了渴望假脫機38%的執行時間(創建臨時索引)。你能否解釋我如何才能避免這一部分的優點。 我沒有得到這個whhile執行到非命名實例的服務器(其中其採取3秒,執行)

編輯:將重新索引的建設做出任何性能改進

+0

我們需要更多的細節才能真正幫助您。我們需要看你的存儲過程,你的表模式,執行計劃,索引等。 – mwigdahl

回答

1

首先檢查:檢查執行計劃在兩臺服務器上進行查詢 - 它們是否匹配?

編輯:計劃不匹配,所以下一個想法是模式(索引)不相同,或者新實例的統計數據不是最新的。在新的實例上嘗試一下sp_updatestats,看看計劃是否改變。

+0

OK @andrew我已經檢查過執行計劃請檢查我的問題的編輯部分。 – user863952

+0

兩臺服務器上的索引都是相同的,我在新的實例服務器上創建了一個新的統計信息,當我檢查時我也能看到更新日期。你能給我一些關於統計的更多細節。感謝您的快速響應。 – user863952

+0

我應該檢查新服務器和舊服務器之間的碎片比率。它會幫助我嗎?我認爲它會影響性能。 – user863952