繁体   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