如何確定一個嚴重規範化的資料庫系統?

nana1123發表於2022-04-25

我希望將一些資料庫二元化介紹到嚴重規範化的系統。

我有一大堆資料庫,這些資料庫超過了十年,並在增加的負載量下,所以我希望提高效能,可能降低一些查詢的複雜性。

在儲存過程中完成任何給定任務,執行10個連線並不罕見。我被告知更多,那麼6個臭味。

如果我保留表結構,並提供一些物化檢視或非規範化的“快取”表。

關於最佳實踐的一些建議或朝著正確的方向推動會有所幫助。

謝謝

看答案

你不說問題是什麼。是表演嗎?如果是的話,在什麼表?

它真的是導致問題的聯絡嗎?或者是儲存的程式嗎?你不知道(或者至少,你不說)。

最佳練習:在嘗試解決您尚未診斷的問題之前,弄清楚您的瓶頸首先是首先。


編輯:當我們有表現問題時,我提醒了一段時間。儲存過程非常緩慢,可能需要幾分鐘時間完成。事實證明,這些SPS正在做出正常的表格更新,  但是使用遊標。對於簡單的東西  update t set c = c + 1 where id = n.

所以要做一個更新,我們正在使用一堆帶有昂貴的更新遊標並做的行  declare cursor for "select c from t where id = n" for update; 然後是一個開啟的游標和讀取和錯誤檢查以及帶有讀取和錯誤檢查的迴圈  select c into @c; @c = c + 1; update t set c = @c where current of cursor; 每次更新。

結果是那些寫的人並沒有意識到我們可以發出更新宣告。所以他寫了幾十個這些緩慢的儲存過程。我們甚至不需要擺脫儲存的過程(雖然這也會增加我們的速度,它會改變我們的客戶);我們剛剛擺脫了游標,用更新陳述替換它們。表現問題消失了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70017124/viewspace-2888678/,如需轉載,請註明出處,否則將追究法律責任。

相關文章