Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was ist die gespeicherte Prozedur und warum eine gespeicherte Prozedur?

Hallo,

In diesem Artikel werde ich über die gespeicherte Prozedur berichten, die in großen Projekten verwendet werden sollte.

Ich denke, es sollte auf jeden Fall in großen Projekten verwendet werden, da der Unterschied zu Stored Procedures nur in Projekten auftritt, die eine große Leistung und Effizienz erfordern.

Gespeicherte Prozeduren im Allgemeinen können wir wie folgt beschreiben:SQL-Anweisungen, die nach der ersten Kompilierung nicht zum Kompilieren benötigt werden und auf dem Datenbankserver verbleiben. Andererseits können wir T-SQL-Anweisungen sagen, die auf dem Datenbankserver statt auf der Anwendungsebene gespeichert sind.

Gespeicherte Prozeduren können wie in anderen Programmiersprachen ohne Parameter ausgeführt werden. Es wird auch als SP bezeichnet, wenn es in der Anwendungsentwicklung verwendet wird. Alle Datenbankoperationen können mit Stored Procedures durchgeführt werden.

Eines der schönsten Merkmale bei der Verwendung gespeicherter Prozeduren ist vielleicht die Trennung der Programmiersprachencodes von den DML-Datenbankabfragen (Database Manipulation Language). Darüber hinaus können Sie, sobald Sie ein SP geschrieben und kompiliert haben, viele Male verwenden.

Im Allgemeinen werde ich die Vorteile von gespeicherten Prozeduren und warum sie zu oft verwendet werden, wie folgt erläutern.

  • Gespeicherte Prozeduren sind sehr schnell, weil sie auf dem Datenbankserver gehalten werden, der Grund dafür ist, dass sie nach einer einmaligen Kompilierung nicht noch einmal kompiliert werden müssen. Der SQL-Code, den Sie in der Anwendungsschicht gesendet haben, muss jedoch bei jeder Transaktion immer wieder neu kompiliert werden. Dies ist eine große Zeitverschwendung für große Projekte und Server, die mehr als einen Client bedienen.
  • Bietet hervorragende Einsparungen beim Netzwerkverkehr.
  • Es bietet eine automatische Parametrisierung von SQL-Anweisungen. Anstatt alle Parameter an der Stelle zu ersetzen, an der SQL-Anweisungen übergeben werden, können Sie die Parameter oder Regeln nur innerhalb des SP ändern. Dadurch wird auch die Komplexität von Anwendungen behoben, sodass Ihre Anwendung modular sein kann.
  • Sie können T-SQL-Befehle zusätzlich zu Programmierausdrücken (if, while, for usw.) verwenden, wenn Sie gespeicherte Prozeduren schreiben.
  • Gespeicherte Prozeduren sind zuverlässiger, da nur die Eingabe- und Ausgabeparameter in der Anwendungsschicht erscheinen. Wenn wir der Meinung sind, dass der Zugriff auf den Datenbankserver normalerweise mit der Benutzer-ID und dem Passwort erfolgt, können wir sagen, dass die Verwendung von SP ein Vertrauenselement für unsere Codes ist.

Die Vorteile von Stored Procedures, die mir in den Sinn gekommen sind, habe ich oben erläutert. Fast alle Softwareanwendungen verwenden im Allgemeinen keine normalen SQL-Codes.

Wie ich oben sagte, macht es SPs sehr vorteilhaft, von einem einzigen Punkt aus verwaltet und an mehr als einem Ort verwendet zu werden und andere Leute nicht so leicht sehen zu können.

Besonders wenn wir an den Netzwerkverkehr denken, bedeutet das Senden vieler Zeilen SQL-Befehle, die vom Client an den Server gesendet werden, anstatt den Namen der gespeicherten Prozedur einmal an den Server zu senden, dass der Netzwerkverkehr sehr erleichtert wird.

Es gibt vier Arten von Stored Procedures.

  1. Systemgespeicherte Prozedur:  sie befinden sich in der master-Datenbank und sp_ Präfix wird für diese gespeicherten Prozeduren verwendet. Sie werden in systembezogenen Verwaltungsaufgaben auf der Datenbank verwendet.
  2. Benutzerbasierte gespeicherte Prozedur: Diese gespeicherten Prozeduren werden für unsere Anwendungen verwendet. Sie können diese SP löschen oder ändern.
  3. Erweiterte gespeicherte Prozedur: Im Allgemeinen wird es wie eine DLL kompiliert und ist eine Art gespeicherte Prozedur, die die Funktionalität des Datenbankservers kompiliert. es wird nur zur Master-Datenbank hinzugefügt.
  4. CLR Stored Procedure: Es ist eine Art gespeicherte Prozedur, die in der CLR-Umgebung entwickelt wurde und eine beliebige Sprache verwendet.