Stored-Procedures

你如何重構一個醜陋的過程/查詢?

  • September 30, 2016

我繼承了一個數據庫,其中包含幾個 1000-1500 行長的過程,複雜的嵌套子選擇在某些地方深達 7 或 8 級。為了我自己的理智,我迫切需要重構它們,但是我怎樣才能開始這樣做呢?

如果這是 .Net,我會編寫單元測試 - 你推薦類似的方法嗎?

是的,創建單元測試。 這確實是確保修改後的版本滿足與原始版本相同的要求的唯一方法。

要重構過程,請尋找可以提取到單獨過程或嵌套過程中的任何重複程式碼模式。如果程序仍然太長,請將其分成單獨的程序,每個程序完成一項任務。當您中斷新程序時,您應該為其添加單元測試。

七或八級子選擇聽起來確實有些過分,但您可能會發現其中一些甚至大部分對於生成所需的數據是必要的。我最初會專注於該過程,然後處理 SQL。

要在 Oracle 中進行單元測試,最重要的商業測試產品是Quest 的 Code TesterOracle 在其免費的SQL Developer產品中內置了單元測試。StackOverflow 上的 PL/SQL 單元測試問題有一些其他選項,或者您可以編寫自己的測試。

引用自:https://dba.stackexchange.com/questions/1144