Heim  >  Artikel  >  Datenbank  >  Datenbankoptimierungspraxis [TSQL]

Datenbankoptimierungspraxis [TSQL]

黄舟
黄舟Original
2016-12-16 17:17:36885Durchsuche

Datenbankoptimierungspraxis [TSQL]
Zuvor haben wir die korrekte Verwendung von Indizes vorgestellt. Dies ist die schnellste Methode zur Leistungsoptimierung, aber im Allgemeinen verbessert die Anpassung von Indizes nur die Abfrageleistung. Darüber hinaus können wir auch den Datenzugriffscode und TSQL anpassen. In diesem Artikel wird erläutert, wie der Datenzugriffscode und TSQL optimal rekonstruiert werden.

Schritt 4: Migrieren Sie den TSQL-Code von der Anwendung in die Datenbank

Vielleicht gefällt Ihnen mein Vorschlag nicht. Möglicherweise haben Sie oder Ihr Team bereits eine unausgesprochene Standardregel, die einfach ORM verwendet (. Object Relational Mapping), um das gesamte SQL zu generieren und in die Anwendung einzufügen. Wenn Sie jedoch die Datenzugriffsleistung optimieren möchten oder Anwendungsleistungsprobleme beheben müssen, empfehle ich Ihnen, den SQL-Code in die Datenbank zu übertragen (unter Verwendung gespeicherter Prozeduren, Ansichten). , Funktionen und Trigger) aus folgenden Gründen:

1. Die Verwendung gespeicherter Prozeduren, Ansichten, Funktionen und Trigger zur Implementierung der Funktionen des SQL-Codes in der Anwendung trägt dazu bei, die Anwendung zu reduzieren. Der Nachteil der SQL-Replikation im Programm besteht darin SQL wird jetzt nur noch an einer Stelle verarbeitet, was eine gute Grundlage für die zukünftige Wiederverwendung von Code legt.

2. Die Verwendung von Datenbankobjekten zur Implementierung aller TSQL hilft bei der Analyse von TSQL-Leistungsproblemen und unterstützt Sie bei der zentralen Verwaltung von TSQL-Code.

3. Nach der Transplantation von TS QL in die Datenbank kann der TSQL-Code besser rekonstruiert werden, um die erweiterten Indizierungsfunktionen der Datenbank zu nutzen. Darüber hinaus wird die Anwendung ohne SQL-Code sauberer.

Auch wenn dieser Schritt möglicherweise nicht so unmittelbar ist wie die ersten drei Schritte, besteht der Hauptzweck dieses Schritts darin, den Grundstein für die nachfolgenden Optimierungsschritte zu legen. Wenn Sie Datenzugriffsroutinen in Ihrer Anwendung mithilfe eines ORM (z. B. NHibernate) implementieren, stellen Sie möglicherweise fest, dass diese in einer Test- oder Entwicklungsumgebung gut funktionieren, in der Produktionsdatenbank können jedoch Probleme auftreten Denken Sie über die auf ORM basierende Datenzugriffslogik nach. Dies ist eine gute Möglichkeit, TSQL-Objekte zur Implementierung von Datenzugriffsroutinen zu verwenden. Dadurch erhalten Sie mehr Möglichkeiten, die Leistung aus der Datenbankperspektive zu optimieren.

Ich versichere Ihnen, wenn Sie 1-2 Mannmonate aufwenden, um die Migration abzuschließen, werden Sie in Zukunft definitiv mehr als 1-2 Mannjahre an Kosten einsparen.

OK! Angenommen, Sie haben das getan, was ich getan habe, und TSQL vollständig in die Datenbank migriert. Kommen wir zur Sache.

 

Schritt 5: Identifizieren Sie ineffizientes TSQL Praktiken zum Rekonstruieren und Anwenden von TSQL

Da jeder Programmierer unterschiedliche Fähigkeiten und Gewohnheiten hat, kann das von ihm geschriebene TSQL unterschiedliche Stile haben und einige Codes werden möglicherweise nicht optimal implementiert. Programmierer mit durchschnittlichen Fähigkeiten denken möglicherweise zuerst an das Schreiben Die Anforderungen an die TSQL-Implementierung werden später besprochen, sodass Probleme möglicherweise nicht während der Entwicklung und beim Testen entdeckt werden.

Es gibt auch einige Leute, die die Best Practices kennen, sie aber aus verschiedenen Gründen beim Schreiben von Code nicht übernehmen. Sie warten, bis der Benutzer wütend wird, bevor sie über die Best Practices nachdenken.

Ich denke, es ist immer noch notwendig, die besten Praktiken vorzustellen.

1. Verwenden Sie in Abfragen nicht „select *“

(1) Das Abrufen unnötiger Spalten führt zu zusätzlichem Systemaufwand. Es gibt ein Sprichwort: „Alles, was in der Provinz ist, wird gespeichert“;

 (2) Die Datenbank kann den „Covering-Index“ nicht nutzen, daher ist die Abfrage langsam.

2. Vermeiden Sie unnötige Spalten in der Auswahlliste und unnötige Tabellen in den Verbindungsbedingungen

Das Obige ist der Inhalt der Datenbankoptimierungspraxis [TSQL]. Weitere verwandte Artikel finden Sie unter Folgen die chinesische PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn