2012-01-19 24 views
5

Czy istnieje narzędzie, które może analizować bazy danych SQL Server pod kątem potencjalnych problemów?FxCop for SQL Server - narzędzie do analizy baz danych SQL Server pod kątem potencjalnych problemów

Na przykład:

  • a foreign key column that is not indexed
  • indeks na kolumnie uniqueidentifier że nie ma FILL FACTOR
  • kolumna LastModifiedDate DATETIME że ma UPDATE spust aby zaktualizować DateTime
  • duży indeks z " wysoki "fragmentation
  • indeks niepodzielony na fragmenty, który istnieje w wielu zakresach
  • wyzwalacz, który nie zawiera SET NOCOUNT ON (pozostawiając podatnych, aby „Wyzwalacz zwrócony resultset i/lub został uruchomiony z SET NOCOUNT OFF podczas gdy inny wybitny zestaw wynik był aktywny.”)
  • bazy danych, tabeli, procedura przechowywana, wyzwalacza, widok, stworzony z SET ANSI_NULLS OFF
  • database or table with SET ANSI_PADDING OFF
  • bazy danych lub tabeli utworzonej z SET CONCAT_NULL_YIELDS_NULL OFF
  • indeksu bardzo rozdrobnionym, które mogą skorzystać z niższego FILLFACTOR (tj bardziej wyściółka)
  • stół o bardzo szerokim skupione indeksie (np uniqueidentifier + uniqueidentifier) ​​
  • stół z nieunikalny klastra wskaźnika
  • wykorzystania innych text/ntext zamiast varchar(max)/nvarchar(max)
  • stosowania varchar w kolumnach prawdopodobnie może zawierać zlokalizowane ciągi i powinny być nvarchar (np Nazwisko, imię, nazwisko, BUSINESSNAME, COUNTRYNAME, miasto)
  • wykorzystanie *=, =*, *=* zamiast LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN
  • trigger that returns a results set
  • dowolnej kolumny zadeklarowane jako timestamp zamiast rowversion
  • pustych timestamp kolumna
  • wykorzystanie image zamiast varbinary(max)
  • baz danych nie w trybie prostym (lub pliku dziennika więcej niż 100x rozmiar pliku danych)

Czy istnieje FxCop dla serwera SQL?

Uwaga: Microsoft SQL Server 2008 R2 Best Practices Analyzer doesn't fit the bill.

+1

Kandydat na [dba.se]? – AakashM

+0

Z pewnością nie chcę, aby administratorzy bazy danych modyfikowali moje wyzwalacze, procedury składowane, typy danych kolumn, nullablity kolumn. –

+1

Miałem na myśli, * to pytanie * jest być może kandydatem na [Q & A dla profesjonalistów baz danych] (http://dba.stackexchange.com/) ... – AakashM

Odpowiedz

8

Jest też darmowe i ciekawe narzędzie!

enter image description here

+1

Bardzo ładne. Interfejs mógłby wykorzystać trochę pracy, ale kontrole są dość obszerne. –

+0

@Ian - czy chcesz uruchomić te kontrole na miejscu, czy jako część automatycznego procesu kompilacji, takiego jak ciągła integracja? –

+0

Prawdopodobnie uruchomiłbym je interaktywnie. Zaplanowane testy serwerów/baz danych mogą być miłe; z wyjątkiem wskaźnika fałszywych trafień. –

2

Istnieje narzędzie o nazwie Static Code Analysis (niezbyt wielka nazwa ze względu na kolizję ze zintegrowanym z VS FxCop), które jest dołączone do Visual Studio Premium i Ultimate, które mogą obejmować przynajmniej podzbiór w czasie projektowania reguł. Możesz także add your own rules, jeśli zestaw reguł w skrzynce nie robi wszystkiego, co chcesz.

1

nie jestem świadomy jednego. Byłoby to mile widziane.

Zamieszczam to jako odpowiedź, ponieważ faktycznie przeszedłem długą drogę do wdrożenia monitoringu wielu rzeczy, które można łatwo zrobić w prostym T-SQL - większość przykładów, które dajesz, można zrobić, sprawdzając metadane.

Po napisaniu dużej liczby procedur dotyczących "kondycji systemu" i organizacji wokół nich napisałem framework do czegoś takiego sam, używając metadanych zawierających rozszerzone właściwości. Pozwoliło to na wykluczenie obiektów z ostrzeżeń za pomocą rozszerzonych właściwości, a reguły można kategoryzować. Zawarłem przykłady niektórych reguł i ich implementacji w mojej prezentacji metadanych. http://code.google.com/p/caderoux/source/browse/#hg%2FLeversAndTurtles Dotyczy to również aplikacji Windows Forms, która wywoła system, ale sam system jest w całości zakodowany i zorganizowany w T-SQL.

1

Spójrz na SQLCop. Jest to najbardziej zbliżona do FXCop.

Powiązane problemy