Was ist der Unterschied zwischen einer gespeicherten Prozedur und einer Ansicht?
Ich bin verwirrt über ein paar Punkte:
- Was ist der Unterschied zwischen einer gespeicherten Prozedur und einer Ansicht?
- Wann sollte ich die Verwendung von gespeicherten Prozeduren und Wann sollte ich verwenden Sie Ansichten, in der SQL Server?
- Tun-Ansichten erlauben die Erstellung von dynamischen Abfragen, wo wir können Parameter übergeben?
- Welches ist der Schnellste, und auf welcher Grundlage ist der eine schneller als der andere?
- Tun, sichten oder gespeicherte Prozeduren Speicher dauerhaft?
- Was bedeutet es, wenn jemand sagt, dass die Ansichten erstellen Sie eine virtuelle Tabelle, während Verfahren erstellen Sie eine Material-Tabelle?
Bitte lassen Sie mich wissen, über mehr Punkte, wenn es welche gibt.
InformationsquelleAutor der Frage NoviceToDotNet | 2011-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Ansicht stellt eine virtuellen Tabelle. Sie können join mehrere Tabellen in einem view und der view präsentiert die Daten, wenn die Daten aus einer einzelnen Tabelle.
Einer gespeicherten Prozedur die Parameter verwendet, um zu tun, eine Funktion... ob das aktualisieren und einfügen von Daten oder die Rückgabe einzelner Werte oder Datensätze.
Erstellen von Ansichten und Gespeicherten Prozeduren - hat einige Informationen von Microsoft, wie, Wann und warum die Verwendung der einzelnen.
Sagen, ich habe zwei Tabellen:
tbl_user
Spalten:
.user_id,
.user_name,
.user_pw
tbl_profile
Spalten:
.profile_id,
.user_id
.profile_description
So, wenn ich mir die Abfrage aus diesen Tabellen eine Menge... zu tun, anstatt die Verknüpfung in JEDEM Stück von sql würde ich definieren, eine Ansicht wie:
So, in der Zukunft, wenn ich Abfragen will profile_description nach Benutzer-id,... alles, was ich tun müssen, ist
DASS code, der verwendet werden könnte, in einer gespeicherten Prozedur wie:
Also später auf, die ich anrufen kann
und ich werde die Beschreibung für Benutzer-id 25. wo die 25 ist Ihre parameter.
Es gibt offensichtlich EINE MENGE mehr detail, aber das ist nur die Grundidee.
InformationsquelleAutor der Antwort Patrick
Reichlich Infos im web verfügbar wie diese
Hier ist eine gute Zusammenfassung:
Einer Gespeicherten Prozedur:
- Anweisung.
Einen Blick:
DELETE-Anweisung.
InformationsquelleAutor der Antwort cusimar9
Zuerst müssen Sie verstehen, Beides sind verschiedene Dinge. Gespeicherte Prozeduren sind am besten für INSERT-UPDATE-DELETE-Anweisungen. und Ansichten verwendet werden für SELECT-Anweisungen. und sollten Sie beide.
Im Blick auf Sie können nicht ändern der Daten.Einige Datenbanken aktualisierbaren Sichten, wo Sie können INSERT-UPDATE-DELETE auf Ansichten.InformationsquelleAutor der Antwort Mahesh
Blick ist eine einfache Möglichkeit zum speichern einer komplexen
SELECT
in der Datenbank.Einer gespeicherten Prozedur wird verwendet, wenn einfache SQL ist einfach nicht genug. Speichern von Prozeduren enthalten, die Variablen, Schleifen und Aufrufe anderer Prozeduren. Es ist eine Programmier-Sprache, nicht eine Abfrage-Sprache.
Ansichten sind statisch. Denke, von Ihnen als neue Tabellen mit einem bestimmten layout und die Daten in Ihnen wird on the fly erstellt mit der Abfrage, die Sie erstellt haben. Wie bei jeder SQL-Tabelle können Sie Sortieren und filtern es mit
WHERE
GROUP BY
undORDER BY
.Das hängt davon ab, was Sie tun.
Das hängt von der Datenbank. Einfache Ansichten führen Sie die Abfrage und filter das Ergebnis. Aber Datenbanken wie Oracle erlauben, eine "materialisierte" - Ansicht, die ist im Grunde eine Tabelle, die automatisch aktualisiert, wenn die zugrunde liegenden Daten der änderungen anzeigen.
Einer materialisierten Ansicht ermöglicht Ihnen das erstellen von Indizes auf die Spalten der Sicht (vor allem auf dem berechneten Spalten, die nicht überall existieren in der Datenbank).
Ich verstehe nicht, was du redest.
InformationsquelleAutor der Antwort Aaron Digulla
Einer SQL-View ist eine virtuelle Tabelle, die auf Basis von SQL-SELECT-Abfrage. Eine Ansicht verweist auf eine oder mehrere bestehende Datenbank-Tabellen oder anderen Ansichten. Es ist die Momentaufnahme der Datenbank in der Erwägung, dass eine gespeicherte Prozedur ist eine Gruppe von Transact-SQL-Anweisungen, die kompiliert in einen einzelnen Ausführungsplan.
Sicht ist einfach die Präsentation in der Datenbank gespeicherten Daten-Tabellen in der Erwägung, dass eine gespeicherte Prozedur ist eine Gruppe von Anweisungen, die ausgeführt werden können.
Blick ist schneller als es zeigt die Daten aus den Tabellen verwiesen wird, in der Erwägung, dass eine gespeicherte Prozedur sql-Anweisungen ausführt.
Lesen Sie diesen Artikel : View vs. Gespeicherte Prozeduren . Genau das, was Sie suchen
InformationsquelleAutor der Antwort reggie
InformationsquelleAutor der Antwort swissben
Hauptunterschied ist, dass beim Abfragen einer Sicht, dann ist es die definition ist eingefügt in Ihre Abfrage. Verfahren geben könnte, die Ergebnisse der Abfrage, aber es kompiliert wird und so schneller. Eine weitere option sind indizierte sichten..
InformationsquelleAutor der Antwort rsc
@Patrick richtig ist mit dem, was er sagte, aber eine Antwort auf Ihre Fragen von anderen eine Sicht erstellen, die sich im Speicher und je nach Typ des Joins -, Daten-und wenn es die aggregation geschieht, könnte es ein sehr Speicher-hungrig-Ansicht.
Gespeicherte Prozeduren alle Ihre Verarbeitung entweder mit temporären Hash-Tabelle.e.g #tmpTable1 oder im Speicher mit @tmpTable1. Je nachdem, was Sie sagen wollen, es zu tun.
Einer Gespeicherten Prozedur ist wie eine Funktion, sondern wird Direkt aufgerufen, indem Ihr name. anstelle von Funktionen die eigentlich in einer Abfrage selbst.
Offensichtlich sind die meisten der Zeit, die Memory-Tabellen sind schneller, wenn Sie nicht retrieveing eine Menge von Daten.
InformationsquelleAutor der Antwort Robbie Tapping
Mahesh ist nicht ganz richtig, wenn er sagt, dass Sie nicht ändern können die Daten in einer Ansicht. Also mit patrick Ansicht
KANN ich die Daten aktualisieren ... als Beispiel kann ich tun, entweder von diesen ...
oder
Können Sie nicht EINFÜGEN, zu dieser Ansicht, da nicht alle Felder in allen in der Tabelle vorhanden sind und ich gehe davon aus, dass PROFILE_ID ist der primary key und kann nicht NULL sein.
Aber manchmal kann man EINFÜGEN in eine Sicht ...
Erstellte ich einen Blick auf eine vorhandene Tabelle mit ...
DANN
und
Sowohl das EINFÜGEN und das LÖSCHEN funktionierte in diesem Fall
Natürlich können Sie nicht aktualisieren Sie alle Felder, die sind aggregiert oder berechnet, aber jede Ansicht, welche nur eine gerade Ansicht sollte aktualisierbar sein.
Wenn die Ansicht enthält mehr als eine Tabelle, dann kann man nicht einfügen, oder löschen, aber wenn die Sicht ist eine Teilmenge einer Tabelle nur dann werden Sie in der Regel können.
InformationsquelleAutor der Antwort Glyn Roberts
Zusätzlich zu den obigen Kommentaren, die ich hinzufügen möchte, wenige Punkte über Ansichten.
InformationsquelleAutor der Antwort Ajendra Prasad