Ressourcen für SQL Server-Code-Überprüfung und bewährte Vorgehensweisen [geschlossen]

9

Gibt es irgendwelche guten Ressourcen für T-SQL-Codierungsstandards?

    
Nick Kavadias 26.03.2009, 12:42
quelle

5 Antworten

4

Sehen Sie sich diese hervorragende Ressource an:

SSW-Regeln für bessere SQL Server-Datenbanken

Das ist auch gut, auch wenn sich einige Ratschläge geändert haben, seit der Artikel aus dem Jahr 2001 stammt:

TSQL-Codierungskonventionen, Best Practices und Programmierrichtlinien von SQL Server

>     
Mitch Wheat 26.03.2009, 12:53
quelle
2

Ich war Entwickler für eine ASP.NET-Anwendung, und mein Manager verlangte, dass ich meine SQL-Anweisungen zur Überprüfung an den DBA übermittelte. Was ich getan habe, war, alle in der Anwendung verwendeten SQL zu einer Moduldatei zu konsolidieren. (VB .NET Modul mit Readonly Strings)

Nur um ein paar Mandate zu nennen.

  1. Alle SQL-Anweisungen müssen parametrisierte Abfragen verwenden. Dies ist eine gute Übung. SQL-Injection ist nicht möglich, wenn Parameter (in Oracle auch Bind-Variablen genannt) verwendet werden. Einige berichteten von einer signifikanten Leistungssteigerung bei der Verwendung von Bind-Variablen. Dies gilt insbesondere für Oracle. Nicht sicher für MS SQL

z. Verwenden Sie "SELECT username FROM user WHERE userid = @ userid" anstelle von Dim sql as String="SELECT Benutzername von Benutzer WHERE userid = {0}" sql = String.Format (sql, Benutzer-ID)

  1. "SELECT *" sollte nicht verwendet werden. Spalten müssen explizit benannt werden.

  2. JOINS sollte immer anstelle von NESTED QUERIES verwendet werden.

  3. Verringern Sie die Verwendung von VIEWS, da dies die Leistung beeinträchtigt. (Dies ist umstritten) Mein Manager ging bis zum Äußersten, um die Verwendung von Ansichten zu verbieten. Wir werden etwas entwickeln, dessen Leistung und Skalierbarkeit wichtiger ist als die Lesbarkeit von Codes.

TechTravelThink 26.03.2009 12:56
quelle
1

Bei SQL-Codierungsstandards suchen Sie am besten nach dem, was andere geschrieben haben. Es gibt mehrere Ressourcen, die Standards enthalten, die von verschiedenen Personen veröffentlicht wurden. Es ist unwahrscheinlich, dass Sie einen finden, der vollständig zu Ihrer Organisation passt. Außerdem haben einige Standards, die IMHO einfach falsch sind. Am besten lesen Sie die Dokumente durch und extrahieren Sie die Konzepte und Regeln, die für Ihr Unternehmen sinnvoll sind. Einige Standards können übertrieben sein, z. B. wie der Code eingerückt wird. Es hängt davon ab, wie streng die Standards sein sollen. Hier sind ein paar Beispiele:

Ссылка

Ссылка

Ссылка

Sie müssen sich die Links zwei und drei ansehen, da mir die genauen URLs nicht zur Hand sind. Überprüfen Sie auch den Link von Mitch Wheat oben. Dies sind nur einige Beispiele, aber Sie finden mehr durch die Suche.

    
NYSystemsAnalyst 26.03.2009 13:03
quelle
0

Ich habe in verschiedenen Organisationen Code-Praktiken für SQL-Server entwickelt oder implementiert. Du kannst tagelang nachforschen, was andere getan haben, und du kannst wahrscheinlich Stücke verwenden, aber ich finde, dass jede Umgebung vollkommen einzigartig ist.

Auf einer hohen Ebene ... würde ich vorschlagen, die Funktion so weit wie möglich von der Form zu trennen. Was meine ich? Es gibt einige Best Practices, die in Ihrer spezifischen Umgebung und Anwendung getestet und dokumentiert werden können, z. B. wann temporäre Tabellen über große Abfragen hinweg verwendet werden, keine Sperre, dynamische SQL-Verwendung, Abfragehinweise, Konfiguration. Diese können je nach Hardware und Verwendung völlig variieren. Dann gibt es andere Standards, die mehr auf der Meinung basieren: Benennungskonventionen, Verwendung von Schemas, Procs, Ansichten, Funktionen, Versionskontrolle usw. Die letztere Gruppe kann ziemlich politisch - wirklich politisch werden. Es ist auch eine gute Idee, klein zu beginnen - ein wenig nach dem anderen zu implementieren.

Bei externen Anbietern war es für mich unpraktisch, Einfluss zu nehmen, bis es zu einer Leistungsbeeinträchtigung kommt (z. B. explizite Abfragehinweise, die zu großen Table-Scans führen). Dann ist es am effektivsten, Daten bereitzustellen und sie dazu zu bringen, sie zu patchen. Wenn es eine Art von Dienstleistungsvertrag gibt, sehe ich nicht, wie Sie Praktiken durchsetzen können. Beachten Sie, dass sie möglicherweise für mehrere Versionen und / oder Plattformen schreiben und den Code so flexibel wie möglich gestalten möchten.

    
Barbara 28.03.2009 18:09
quelle
-2

Ich empfehle, die Beispieldatenbank AdventureWorks von codeplex.com herunterzuladen und zu installieren.

Ссылка

Es wurde von Microsoft-Mitarbeitern erstellt und hat ein sehr gutes Design, das Ihnen als Beispiel dienen kann (a la Best Practices).

Und ich empfehle auch, dieses Buch zu lesen:

Professionelle Microsoft SQL Server 2008-Verwaltung

Professionelles Microsoft SQL Server 2008 Administration http://ecx.images-amazon.com/images/I/519z8XkHJyL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg

    
Konstantin Tarkus 26.03.2009 12:45
quelle

Tags und Links