欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決運行procedure很慢但運行procedure內(nèi)容很快問題

  發(fā)布時間:2014-02-21 09:34:32   作者:佚名   我要評論
打開procedure一段一段執(zhí)行卻沒問題,執(zhí)行整個procedure的內(nèi)容也沒問題,但是exec procedure_nm卻始終有問題,下面有個不錯的解決方法,大家可以參考下
問題描述:

有一次在發(fā)布系統(tǒng)到production環(huán)境之后,突然發(fā)現(xiàn)報表過了好幾分鐘也刷新不出來,小哥我直接就慌神了。迅速進(jìn)行各種測試,首先右鍵報表屬性找出報表地址,看看參數(shù)是否傳對了。找出報表參數(shù)之后直接運行procedure,也跑不出來。打開procedure一段一段執(zhí)行卻沒問題,執(zhí)行整個procedure的內(nèi)容也沒問題,但是exec procedure_nm卻始終有問題。在開發(fā)環(huán)境execute procedure,也沒問題。于是,開始糾結(jié)了。

環(huán)境:SQL SERVER 2008, SSRS 2008

解決過程:

仔細(xì)思考production環(huán)境和開發(fā)環(huán)境的不同,無非就是開發(fā)環(huán)境是新搭建的環(huán)境,production是已經(jīng)存在好幾年的環(huán)境,這次只是對其報表producdure進(jìn)行了改變,并打了一個補丁修改之前半年的歷史數(shù)據(jù)。后來發(fā)現(xiàn)這里就是引起這次事情的主要原因。通過不斷的查找問題,發(fā)現(xiàn)了開發(fā)環(huán)境和production里面的表統(tǒng)計信息(在SQL SERVER里面左側(cè)目標(biāo)瀏覽器中展開表之后的最下面一個項目:Statistics)不一樣。當(dāng)時只是一個猜測,大量跟新數(shù)據(jù)會引起production的統(tǒng)計信息過時,而SQL SERVER引擎在解析procedure的時候會根據(jù)統(tǒng)計信息制定一系列數(shù)據(jù)檢索計劃,就像以前從A市到B市有一條高速公路,現(xiàn)在這條高速公路沒用了,SQL SERVER引擎就去尋找其他笨的方法,而統(tǒng)計信息的自動更新只會發(fā)生在夜深人靜之時。所以便嘗試著去申請手動更新production的統(tǒng)計信息。統(tǒng)計信息更新之后,報表能夠正常打開了。

解決方法:

USE Database_nm

EXEC sp_UpdateStats

結(jié)論:

在大量更新數(shù)據(jù)之后,會使數(shù)據(jù)庫的統(tǒng)計信息發(fā)生變化,繼而影響SQL SERVER對SQL的解析。需要重新更新數(shù)據(jù)庫的統(tǒng)計信息,讓SQL SERVER參考最新的正確的信息去制定執(zhí)行計劃。

相關(guān)文章

最新評論