FxCop for SQL Server - инструмент для анализа баз данных SQL Server на возможные проблемы - PullRequest
5 голосов
/ 19 января 2012

Существует ли инструмент, который может анализировать базы данных SQL Server на наличие потенциальных проблем?

Например:

  • столбец внешнего ключа, который не проиндексирован
  • индекс для столбца uniqueidentifier, который не имеет FILL FACTOR
  • столбец LastModifiedDate DATETIME, в котором нет триггера UPDATE для обновления даты и времени
  • большой индекс с "высокой" фрагментацией
  • не фрагментированный индекс, которыйсуществует в нескольких экстентах
  • триггер, который не содержит SET NOCOUNT ON (оставляя его с подозрением на "Триггер возвратил набор результатов и / или работал с SET NOCOUNT OFF, пока был активен другой ожидающий набор результатов.")
  • база данных, таблица, хранимая процедура, триггер, представление, созданные с помощью SET ANSI_NULLS OFF
  • a база данных или таблица с SET ANSI_PADDING OFF
  • база данных или таблица, созданная с помощью SET CONCAT_NULL_YIELDS_NULL OFF
  • сильно фрагментированного индекса, который может выиграть от более низкой FILLFACTOR (то есть большего заполнения)
  • таблицы с очень широкой кластеризациейиндекс (например, uniqueidentifier + uniqueidentifier) ​​
  • таблица с неуникальным кластеризованным индексом
  • использование text/ntext вместо varchar(max)/nvarchar(max)
  • использование varchar в столбцах, которые могут содержать локализованные строки и должны быть nvarchar (например, Name, FirstName, LastName, BusinessName,CountryName, City)
  • использование *=, =*, *=* вместо LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN
  • триггера, который возвращает результатыустановите
  • любой столбец, объявленный как timestamp вместо rowversion
  • обнуляемый timestamp столбец
  • использование image вместо varbinary(max)
  • базы данных не в простом режиме (или файл журнала больше чем в 100 раз превышает размер файла данных)

Существует ли FxCop для SQL Server?

Примечание: Анализатор соответствия рекомендациям для Microsoft SQL Server 2008 R2 не отвечает требованиям .

Ответы [ 5 ]

8 голосов
/ 19 января 2012

Есть SQLCop - бесплатный и довольно интересный инструмент!

enter image description here

2 голосов
/ 19 января 2012
2 голосов
/ 19 января 2012

Существует инструмент под названием Статический анализ кода (не совсем хорошее имя, учитывая его коллизию с интегрированным в VS FxCop), который включен в Visual Studio Premium и Ultimate и может охватывать как минимум время разработкиподмножество ваших правил.Вы также можете добавить свои собственные правила , если набор правил в папке не выполняет все, что вы хотите.

1 голос
/ 19 января 2012

Взгляните на SQLCop . Это самый близкий, который я видел к FXCop.

1 голос
/ 19 января 2012

Я не знаю ни одного. Было бы приветствоваться.

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

После написания большого количества процедур "исправности системы" и некоторой организации вокруг них я сам написал основу для чего-то подобного, используя метаданные, включая расширенные свойства. Это позволило пометить объекты, которые будут исключены из предупреждений с использованием расширенных свойств, и правила могут быть классифицированы. Я включил примеры некоторых правил и их реализации в мою презентацию метаданных. http://code.google.com/p/caderoux/source/browse/#hg%2FLeversAndTurtles Сюда также входит приложение Windows Forms, которое будет вызывать систему, но сама система полностью закодирована и организована в T-SQL.

...