2016-04-20 2 views
2

У нас есть база данных SQL Server, в которой содержится довольно много таблиц, хранимых процедур и видов, которые не используются. База данных была недавно импортирована в проект базы данных Visual Studio. Мы используем ADO.NET.Чистая база данных SQL Server из проекта базы данных Visual Studio 2013

Что было бы самым быстрым способом идентифицировать все это?

Я могу использовать код, приведенный ниже, чтобы вручную искать для каждой таблицы, представления и т.д. от SSMS:

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

или использовать «Найти все ссылки» на каждого элемента в базе данных проекта Visual Studio, чтобы проверить, если он используется в любом месте а затем вручную найдите имя каждой таблицы, имя хранимой процедуры, имя представления и т. д., чтобы проверить, используется ли она в любом месте решения.

Есть ли лучший способ сделать это?

+0

Если вы не хотите использовать какие-либо внешние инструменты (например, RedGate, DevArt и т. Д.), Так что вам нужно сделать так, как описано в вопросе ... –

+0

Я мог бы принять во внимание использование внешнего инструмента, если он найдет все ссылки на Visual Studio, а также не только на SQL Server. –

ответ

1

Возможно, есть лучший способ, но я обычно использую плагин SQL Search от redgate: http://www.red-gate.com/products/sql-development/sql-search/, чтобы узнать, какие объекты базы данных используются. Это только покажет вам ссылки в базе данных, конечно, не на их ссылки из визуальных студийных решений.

+1

Спасибо, но мне действительно нужно найти все ссылки из Visual Studio, а не только из SQL Server. –

1

Даже если у вас есть инструмент, который идентифицирует ссылки на код приложения для ваших объектов, это не гарантирует, что эти пути кода фактически используются в действительности.

Другой подход заключается в том, чтобы использовать отчеты о покрытии кода, по крайней мере, чтобы понять, что может не использовать, но это лучше всего работает, если у вас есть полный набор автоматических тестов.

См. this article for Visual Studio.

Вы можете попробовать SQL Cover сделать то же самое для процедур и функций SQL Server.

Если у вас нет тестов, которые покрывают достаточно вашего приложения, возможно, стоит рассмотреть возможность запуска этого на UAT или даже вашу активную производственную базу данных (с осторожностью) в течение определенного времени. Конечно, вы должны сделать необходимые проверки перед удалением кода, который, как вы подозреваете, не используется!

+0

Большое спасибо Давид –

Смежные вопросы