Gibt es irgendwelche guten Ressourcen für T-SQL-Codierungsstandards?
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
>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.
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)
"SELECT *" sollte nicht verwendet werden. Spalten müssen explizit benannt werden.
JOINS sollte immer anstelle von NESTED QUERIES verwendet werden.
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.
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.
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.
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:
Tags und Links sql-server coding-style