So schreiben und optimieren Sie gespeicherte SQL Server-Prozeduren
[Einführung] Während des Entwicklungsprozesses einer Datenbank treten häufig komplexe Geschäftslogiken und Datenbankoperationen auf. Zu diesem Zeitpunkt wird SP zum Kapseln von Datenbankoperationen verwendet. Wenn es im Projekt viele SPs gibt und es keine bestimmten Standards zum Schreiben gibt, wird es schwierig, das System in Zukunft zu warten und es schwierig zu machen, die Logik der großen SPs zu verstehen. Darüber hinaus ist es beispielsweise
Während des Entwicklungsprozesses der Datenbank treten häufig komplexe Probleme auf. Für Geschäftslogik und Datenbankoperationen wird SP zu diesem Zeitpunkt verwendet, um Datenbankoperationen zu kapseln. Wenn das Projekt viele SPs hat und das Schreiben nicht standardisiert ist, wird es schwierig, das System in Zukunft zu warten und die Logik der großen SPs zu verstehen. Darüber hinaus ist die Datenmenge in der Datenbank groß Wenn das Projekt groß ist oder hohe Leistungsanforderungen an die SPs stellt, werden Sie auf ein Optimierungsproblem stoßen. Andernfalls kann die Geschwindigkeit sehr langsam sein. Nach persönlicher Erfahrung ist ein optimierter SP sogar hunderte Male effizienter als ein SP mit schlechter Leistung .
Details:
1. Wenn Entwickler Tabellen oder Ansichten aus anderen Bibliotheken verwenden, müssen sie Ansichten in der aktuellen Bibliothek erstellen, um bibliotheksübergreifende Vorgänge zu implementieren sie direkt. „databse.dbo.table_name“, da sp_depends die vom SP verwendete datenbankübergreifende Tabelle oder Ansicht nicht anzeigen kann, was für die Überprüfung unpraktisch ist.
2. Vor dem Einreichen von SP müssen Entwickler den Abfrageplan mithilfe von „set showplan on“ analysiert und eine eigene Abfrageoptimierungsprüfung durchgeführt haben.
3. Um die Effizienz des Programmbetriebs zu verbessern und Anwendungen zu optimieren, sollten Sie während des SP-Schreibprozesses auf die folgenden Punkte achten:
(a) SQL Verwendungsspezifikationen:
i Versuchen Sie, große Transaktionsvorgänge zu vermeiden und verwenden Sie die Holdlock-Klausel mit Vorsicht, um die Systemparallelität zu verbessern.
ii. Versuchen Sie, den wiederholten Zugriff auf dieselbe(n) Tabelle(n) zu vermeiden, insbesondere auf Tabellen mit großen Datenmengen. Sie können erwägen, Daten zunächst auf der Grundlage von Bedingungen in eine temporäre Tabelle zu extrahieren und dann eine Verbindung herzustellen.
iii Versuchen Sie, die Verwendung von Cursorn zu vermeiden, da Cursor weniger effizient sind. Wenn die vom Cursor verarbeiteten Daten mehr als 10.000 Zeilen umfassen, sollten Sie versuchen, Cursorschleifen zu vermeiden. Führen Sie dann den Tabellenverknüpfungsvorgang aus.
Achten Sie auf die Schreibweise der Wörter. Die Reihenfolge der Bedingungssätze sollte entsprechend der Indexreihenfolge und der Bereichsgröße festgelegt werden Reihenfolge im Einklang mit der Indexreihenfolge und dem Bereich von groß nach klein.
v. Führen Sie keine Funktionen, arithmetischen Operationen oder andere Ausdrucksoperationen auf der linken Seite von „=" in der where-Klausel aus, da das System sonst den Index möglicherweise nicht korrekt verwenden kann.
vi Versuchen Sie, „exists“ anstelle von „select count(1)“ zu verwenden, um festzustellen, ob ein Datensatz vorhanden ist. Die Zählfunktion wird nur verwendet, wenn alle Zeilen in der Tabelle gezählt werden und count(1) größer ist praktischer als count(*).
vii. Versuchen Sie, „>=“ anstelle von „>“ zu verwenden.
viii. Achten Sie auf die Ersetzung zwischen einigen oder-Klauseln und Union-Klauseln
ix. Achten Sie auf die Datentypen von Verbindungen zwischen Tabellen und vermeiden Sie Unterschiede zwischen verschiedenen Typen der Daten.
x Achten Sie auf die Beziehung zwischen Parametern und Datentypen in der gespeicherten Prozedur.
xi. Achten Sie auf das Datenvolumen von Einfüge- und Aktualisierungsvorgängen, um Konflikte mit anderen Anwendungen zu vermeiden. Wenn die Datenmenge 200 Datenseiten (400 KB) überschreitet, aktualisiert das System die Sperre und die Sperre auf Seitenebene wird auf eine Sperre auf Tabellenebene aktualisiert.
(b) Indexnutzungsspezifikationen:
i Die Erstellung von Indizes sollte im Zusammenhang mit der Anwendung in Betracht gezogen werden Große OLTP-Tabellen sollten 6 Indizes nicht überschreiten.
ii. Versuchen Sie, Indexfelder als Abfragebedingungen zu verwenden, insbesondere Clustered-Indizes. Bei Bedarf können Sie die Angabe des Index erzwingen
iii. Vermeiden Sie Paarungen. Führen Sie einen Tabellenscan durch, wenn Sie große Tabellen abfragen, und erwägen Sie bei Bedarf die Erstellung neuer Indizes.
iv. Wenn ein Indexfeld als Bedingung verwendet wird und der Index ein gemeinsamer Index ist, muss das erste Feld im Index als Bedingung verwendet werden, um sicherzustellen, dass das System den Index verwendet. andernfalls wird der Index nicht verwendet.
v. Achten Sie auf die Wartung des Index, erstellen Sie den Index regelmäßig neu und kompilieren Sie die gespeicherte Prozedur neu.
(c) Tempdb-Nutzungsspezifikationen:
i Versuchen Sie, die Verwendung von „distinct“, „order by“, „group by“, „have“, „join“, „cumute“ zu vermeiden , da diese Anweisungen die Belastung von tempdb erhöhen.
ii. Vermeiden Sie das häufige Erstellen und Löschen temporärer Tabellen und reduzieren Sie den Verbrauch von Systemtabellenressourcen.
iii. Wenn die auf einmal eingefügte Datenmenge groß ist, können Sie „Auswählen in“ anstelle von „Tabelle erstellen“ verwenden, um Protokolle zu vermeiden und die Geschwindigkeit zu verbessern ist nicht groß, um das System zu entlasten. Für Tabellenressourcen wird empfohlen, zuerst eine Tabelle zu erstellen und dann einzufügen.
iv. Wenn die temporäre Tabelle eine große Datenmenge enthält und indiziert werden muss, sollte der Prozess der Erstellung der temporären Tabelle und der Indizierung in einer separaten unterspeicherten Prozedur platziert werden, um sicherzustellen, dass die Das System kann problemlos den Index der temporären Tabelle verwenden.
v. Wenn temporäre Tabellen verwendet werden, müssen alle temporären Tabellen am Ende der gespeicherten Prozedur explizit gelöscht werden. Dadurch kann eine langfristige Sperrung vermieden werden der Systemtabellen.
vi. Seien Sie vorsichtig, wenn Sie Abfragen und Änderungen zwischen großen temporären Tabellen und anderen großen Tabellen verbinden, um die Belastung der Systemtabellen zu verringern, da dieser Vorgang die tempdb-Systemtabelle mehrmals in einer Anweisung verwendet.
(d) Angemessener Algorithmuseinsatz:
Basierend auf der oben genannten SQL-Optimierungstechnologie und den SQL-Optimierungsinhalten im ASE Tuning-Handbuch, kombiniert mit praktischen Anwendungen, werden mehrere Algorithmen zum Vergleich verwendet, um die Methode zu erhalten, die die wenigsten Ressourcen verbraucht und am effizientesten ist . Es stehen spezifische ASE-Tuning-Befehle zur Verfügung: „Statistik-IO aktivieren“, „Statistik-Zeit aktivieren“, „Showplan aktivieren“ usw.
Das obige ist der detaillierte Inhalt vonSo schreiben und optimieren Sie gespeicherte SQL Server-Prozeduren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
