2013-03-29 185 views
1

我繼承了格式不正確的SQL服務器數據庫。 (一些諮詢公司進來做項目,離開還沒有走完) 我的主要問題與此數據庫是:數據庫清理

  • 數據類型:很多TINYINT和文本類型。
  • 表格沒有被標準化:有些鍵名稱而不是seq id。
  • 很多的表,我不知道正在使用
  • 了很多的我不知道正在使用
  • 嚴重命名錶和存儲的特效

我也繼承了存儲過程針對此數據庫運行的asp.net應用程序。

我想清理這個數據庫了。我知道,更改數據類型將不得不在每個表上發生。爲了擺脫所有額外的表格和存儲過程。最簡單的方法是什麼? 任何其他技巧,使其更清潔,更小,是值得讚賞的。

我想還提到我已經安裝了RedGate工具(如果有幫助的話)。

謝謝

+0

你寫道:「表沒有標準化:一些鍵是名稱而不是seq id。」 只是想指出,規範化與使用自然或代理鍵無關。數據庫可以很好地標準化,並使用主鍵和外鍵的名稱。 – jpw

+0

在我看來,這是相當開放式的,並沒有太多的細節來得到一個很好的答案。您可以使用redgate的「查找無效對象」及其「智能重命名」功能來查看引用的內容。但是你也可以在.NET應用程序中引用這些資源。長話短說,這將是一個緩慢的過程。大量的手動檢查和一些試驗(包括智能重命名!)和錯誤,以找出最終的清理最終會如何。 –

+0

jpw-我知道名稱可以用於FKs,我說如果表B有列(seqid,Description),在表A中鏈接是A.Description = B.Description。 – curiousMo

回答

0

時退房Sql Server Data Tools他們允許創建從實時數據庫的項目。您可以在此處執行的一些操作是右鍵單擊表格,視圖和函數的「查找用例」。

只要以前的開發人員使用存儲過程和視圖而不是直接查詢,它應該以這種方式找到對項目的引用,而不會中止您的項目。

另外,爲了找到未使用的存儲過程,在應用程序中的每個存儲過程的頂部放置一些基本日誌記錄,在X天之後,未記錄在表中的那些可能是安全的刪除,否則通過您的.NET代碼的乏味搜索將找到它們。