簡體   English   中英

從 Visual Studio 2013 數據庫項目中清理 SQL Server 數據庫

[英]Clean SQL Server database from Visual Studio 2013 database project

我們有一個 SQL Server 數據庫,它有很多未使用的表、存儲過程和視圖。 該數據庫最近已導入到 Visual Studio 數據庫項目中。 我們正在使用 ADO.NET。

識別所有這些的最快方法是什么?

我可以使用下面的代碼從 SSMS 手動查找每個表、視圖等:

SELECT DISTINCT so.name
FROM syscomments sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.TEXT LIKE '%putYouTextHere%'

或在 Visual Studio 數據庫項目中的每個項目上使用“查找所有引用”來檢查它是否在任何地方使用,然后手動搜索每個表名、存儲過程名稱、視圖名稱等以檢查它是否在解決方案中的任何地方使用。

有沒有更好的方法來做到這一點?

可能有更好的方法,但我通常使用來自 redgate 的 SQL Search 插件: http : //www.red-gate.com/products/sql-development/sql-search/來查看正在使用的數據庫對象。 這只會向您顯示數據庫中的引用,而不是來自 Visual Studio 解決方案的引用。

即使您有一個工具來識別對您的對象的應用程序代碼引用,它也不能保證這些代碼路徑在現實中被實際使用。

一種不同的方法是使用代碼覆蓋率報告,至少可以了解可能沒有使用的內容,但如果您有一組全面的自動化測試,這種方法效果最好。

請參閱本文以了解 Visual Studio

您可以嘗試SQL Cover對 SQL Server 過程和函數執行相同的操作。

如果您沒有覆蓋足夠多的應用程序的測試,也許值得考慮在 UAT 上運行它,甚至在您的活動生產數據庫(謹慎)上運行一段有代表性的時間。 當然,您應該在刪除您懷疑未被使用的代碼之前進行必要的檢查!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM