我作爲一名學生工作的網站將在不久的將來進行重新設計和發佈,並且我已被分配了手動搜索數據庫中每個表格的任務,該網站使用該表格查找我們可以考慮刪除的表格。我正在通過Dreamweaver中的每個HTML文件源代碼進行搜索,但我希望有一種自動方式來檢查我的工作。有沒有人有任何建議,如何在商業世界中做到這一點?從大型數據庫中清除SQL表?
回答
如果您通過代碼進行搜索,您可能會發現從未使用過的SQL,因爲用戶從不在應用程序中選擇這些選項。
相反,我建議您打開數據庫審計並記錄實際使用的SQL。例如in Oracle you would do it like this。其他主要數據庫服務器具有相似的功能
從日誌數據中,您不僅可以識別正在使用的表格,還可以識別它們的使用頻率。如果架構中有任何表在審計周內沒有顯示,或者很少顯示,那麼您可以使用文本搜索工具在代碼中進行調查。
一旦你有候選表從數據庫中刪除,並從你的經理批准,然後不要刪除表,再次創建它們作爲空表,或者在表中放置一個虛擬記錄大多爲空值(或零或空白),除了名稱和描述性字段,您可以在其中放入「DELETED」,「報告錯誤DELE以支持中心」等。這樣,應用程序不會因爲硬錯誤而失敗,並且您有機會找出當這些未使用的表結束時用戶正在做什麼。
對DB(Visio,Toad等)進行反向工程,記錄結構並詢問他們需要的新站點的設計者 - 然後重構。
謝謝。我不能投票給你,因爲我「沒有足夠的聲譽」,但這是我尋找的方法。我是一名初學者程序員,我仍然熟悉事物的過程。 – nlast
如果在HTML源代碼中指定了表名(如果這是他們唯一指定的地方!),那麼可以在文件中搜索數據庫中每個表的名稱。如果有很多表,可以考慮使用像grep這樣的工具,並創建一個腳本,該腳本針對每個表名稱,針對源代碼庫(HTML文件以及任何可以通過名稱引用表的其他人)運行grep。
說了這麼多之後,我仍然會遵循Damir的建議,並向數據設計人員提供刪除候選人列表以供驗證。
我猜你沒有對數據訪問或用戶界面進行任何測試,因此無法驗證什麼和未使用。只要數據訪問一致,腳本就是您最好的選擇。讓它搜索出正在調用的表/視圖/存儲過程,並將它們轉儲到文件以進一步分析。這至少會給你一個從某個地方實際調用的所有東西的列表。至於如果這些網頁實際上在任何地方使用,那是另一回事。
一旦獲得了正在調用的數據庫元素的列表,請將其與數據庫中的用戶定義元素列表進行比較。這會給你那些可能被刪除的。
所有這些話,如果網站正在重新設計,那麼新的數據庫模式可能實際上是一個更好的方法。開始新鮮和導入舊數據通常比查找死表和字段的密集程度要低。
我會通過HTML源代碼的關鍵詞梳理入手:
- 選擇
- INSERT
- UPDATE
- DELETE
...用grep在/ etc。這些都不是HTML實體,並且您不能可靠地使用表名,因爲您可能正在處理視圖(假設系統中存在任何視圖)。然後你必須自己傾吐陳述來確定使用的是什麼。
如果在系統中使用[希望]功能和/或存儲過程,大多數數據庫都有參考功能來檢查依賴關係。
這將是一個逐屏創建設計文檔的好時機,列出屏幕&上的屬性,其中的值來自數據庫中的table.column級別。
編譯使用的表的列表,並與數據庫中的實際內容進行比較。
- 1. MySQL Inndob從非常大的數據庫中刪除/清除行
- 2. 清除數據庫表
- 3. 不能完全從數據庫中清除數據的列表
- 4. 在SQL中清除表格數據
- 5. 如何清除數據庫中的表
- 6. 從大型數據庫中刪除數據
- 7. 如何從單列中清除大MySQL數據庫舊條目?
- 8. 從mysql表中清除數據
- 9. 導入數據前清除SQL表(0123)
- 10. 從SQL Server數據庫刪除大量數據
- 11. 從表中刪除後數據庫大小變大
- 12. 從SQL Server數據庫中的所有表數據刪除,除了一些表
- 13. LINQ清除()不從數據庫
- 14. 清除數據表
- 15. 用於清除數據庫表的SQL腳本
- 16. PHP的SQL命令只是清除數據庫表?
- 17. Visual Studio 2010數據庫瀏覽器sql查詢清除表
- 18. 從SQL數據庫中刪除android
- 19. 如何從SQL數據庫中刪除
- 20. 從SQL數據庫中刪除
- 21. 清除JTable,使用JComboBox從數據庫中檢索數據
- 22. 清單SQL Server數據庫
- 23. SQL數據庫清單
- 24. 從ODBC(SQL Server)中刪除數據庫名稱表列表
- 25. Heroku:遷移表單共享數據庫以清除數據庫
- 26. GAE清除數據庫
- 27. 清除Postgresql數據庫
- 28. RavenDB清除數據庫
- 29. 清除OrientDB數據庫
- 30. 大型SQL Server 2000數據庫
同樣,這隻會給你自從你開始觀看以來所使用的內容。更好地評估整個應用程序並確定在改造中將會做什麼。 –