Gespeicherte Prozeduren Vs. Ansichten
Habe ich auch, aber was ich bin, nicht klar ist, Wann sollte ich lieber einen über den anderen. Ich meine, ich weiß, gespeicherte Prozedur können Parameter...aber wirklich können wir immer noch führen die gleiche Sache mit Ansichten zu Recht ?
So, in Anbetracht der Leistung und andere Aspekte Wann und warum sollte ich lieber einen über den anderen ?
InformationsquelleAutor der Frage Vishal | 2010-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, ich würde verwenden gespeicherte Prozedur für die Kapselung von code und Kontrolle von Berechtigungen besser.
Blick ist nicht wirklich Kapselung: es ist ein makro, das expandiert. Wenn Sie beginnen Beitritt in Aussicht ziemlich bald werden Sie haben einige schreckliche Abfragen. Ja, Sie kann Verbunden werden, aber Sie sollten nicht..
Sagen, dass Ansichten sind ein Werkzeug, das Ihren Platz haben (indizierte sichten zum Beispiel) wie gespeicherte Prozeduren.
InformationsquelleAutor der Antwort gbn
Den Vorteil von views ist, dass Sie genauso behandelt werden wie Tabellen. Sie können verwendet werden, WO man gefilterte Daten von Ihnen, JOIN in Sie, et cetera. Sie können auch EINFÜGEN von Daten in Ihnen, wenn Sie einfach genug. Ansichten können Sie auch den index, die Ihre Ergebnisse im Gegensatz zu gespeicherten Prozeduren.
InformationsquelleAutor der Antwort Matti Virkkunen
Den wichtigsten Vorteil von gespeicherten Prozeduren ist, dass Sie erlauben, Sie zu übernehmen-Logik (Skript). Diese Logik kann so einfach sein wie eine IF/ELSE oder komplexere wie DO WHILE-Schleifen, SWITCH/CASE.
InformationsquelleAutor der Antwort Nasir
Blick nur wie eine einzelne gespeicherte query-Anweisung, es nicht enthalten eine komplexe Logik oder mehrere Aussagen (über die Verwendung von union etc). Für etwas komplexer oder anpassbare über Parameter wählen Sie gespeicherte Prozeduren, die es erlauben eine viel größere Flexibilität.
Es ist üblich, verwenden Sie eine Kombination von Ansichten und Gespeicherten Prozeduren in einer Datenbank-Architektur, und vielleicht aus ganz anderen Gründen. Manchmal ist es zu erreichen Abwärtskompatibilität in sprocs, wenn schema ist neu entwickelt, manchmal, um die Daten zu mehr manipulierbar, verglichen mit der Art, wie es gespeichert ist nativ in Tabellen (de-noramlized Ansichten).
Starke Nutzung von Ansichten, die die Leistung beeinträchtigen kann, da es schwieriger für SQL Server optimiert diese Abfragen. Jedoch ist es möglich, indizierte sichten, die können tatsächlich verbessern die Leistung beim arbeiten mit Verknüpfungen in der gleichen Weise wie mit indizierten Tabellen. Es gibt sehr viel strengere Beschränkungen auf die erlaubte syntax bei der Umsetzung von indizierten sichten und eine Menge Feinheiten in eigentlich immer Sie arbeiten, je nach der edition des SQL Server.
Denke, dass der Blick mehr wie Tabellen über gespeicherte Prozeduren.
InformationsquelleAutor der Antwort TheCodeKing
Ich korrelieren die Verwendung von gespeicherten Prozeduren, um die Notwendigkeit für das senden/empfangen von Transaktionen in und aus der Datenbank. Das ist, wenn ich mich zum senden von Daten an meine Datenbank, die ich verwenden einer gespeicherten Prozedur. Das gleiche gilt, wenn ich will, um die Daten zu aktualisieren oder die Abfrage der Datenbank für Informationen verwendet werden, die in meiner Anwendung.
Datenbank-views sind sehr zu verwenden, wenn Sie möchten, um eine Teilmenge von Feldern aus einer Tabelle, lassen Sie Ihre MS Access-Benutzer, um die Daten anzuzeigen, ohne Risiko, zu modifizieren und um sicherzustellen, dass Ihre Berichte gehen zu generieren, die anticpated Ergebnisse.
InformationsquelleAutor der Antwort SidC
Ansichten sind nützlich, wenn gibt es eine bestimmte Kombination von Tabellen, oder eine Teilmenge der Daten, die Sie konsequent Abfragen wollen, zum Beispiel, ein Benutzer Mitglied mit seinen Berechtigungen. Ansichten sollten in der Tat so behandelt werden, als Tabellen.
Gespeicherte Prozeduren sind Teile von sql-code "kompiliert", wie es denen laufen mehr optimal, als eine zufällige andere Abfrage. Der Ausführungsplan der sql-code in eine gespeicherte Prozedur ist bereits gebaut, sodass die Ausführung läuft etwas weicher als bei einer normalen sql-Anweisung.
InformationsquelleAutor der Antwort Joachim VR
Gespeicherte Prozedur : Stored procedures sind vorkompilierte Datenbank-Abfragen, Verbesserung der Sicherheit, Effizienz und usability von Datenbank-client - /server-Anwendungen. Die Entwickler spezifizieren Sie eine gespeicherte Prozedur in Bezug auf input-und output-Variablen. Sie kompilieren Sie den code auf der Datenbank-Plattform zur Verfügung stellen, um Software-Entwickler für die Verwendung in anderen Umgebungen, wie zum Beispiel web-Anwendungen. Alle gängigen Datenbank-Plattformen wie Oracle, SQL Server und MySQL-Unterstützung für gespeicherte Prozeduren. Die wichtigsten Vorteile dieser Technologie sind die deutliche performance-Gewinne von vorkompilierten Ausführung, die Reduktion von client - /server-Datenverkehr Entwicklung Effizienzgewinne von code-Wiederverwendung und Abstraktion und die Sicherheit systemimmanente Kontrollen bei der Gewährung von Benutzer-Berechtigungen für bestimmte gespeicherte Prozeduren anstelle der zugrunde liegenden Datenbank-Tabellen.
Ansichten: Datenbank-Ansichten können Sie erstellen "virtuelle Tabellen", die dynamisch generiert werden, wenn auf Sie zugegriffen wird. Eine Ansicht wird gespeichert, auf der Datenbank-server als eine SQL-Anweisung, zieht Daten aus einer oder mehreren Tabellen und (Optional) führt Transformationen auf die Daten. Der Anwender kann dann die Abfrage der anzeigen, so wie Sie würde jede echte Datenbank-Tabelle. Ansichten werden oft verwendet, zu lindern und Sicherheit zu sorgen, indem Benutzern der Zugriff auf eine bestimmte Ansicht einer Datenbank-Tabelle, ohne Zugriff auf die zugrunde liegende Tabelle selbst.
InformationsquelleAutor der Antwort RRR
Zwei Begründungen.
Verwenden Sie die gespeicherte Prozedur statt, wenn Sie nicht wollen insertion möglich sein. Das einfügen in eine Sicht kann nicht geben, was es scheint zu tun. Es wird sich einfügen in eine Tabelle, eine Zeile, die nicht mit der Abfrage aus der Ansicht, eine Zeile, die dann nicht in der Ansicht angezeigt; eingefügt irgendwo, aber nicht dort, wo die Aussage zu machen es scheint.
Verwenden Sie eine Ansicht, wenn Sie nicht verwenden können, das Ergebnis einer gespeicherten Prozedur von einer anderen Prozedur (ich war nie in der Lage, das letzteres funktioniert, zumindest bei MySQL).
InformationsquelleAutor der Antwort Hibou57
Ansichten relvars, die Tupel enthalten.
Gespeicherten Prozeduren Skripten.
InformationsquelleAutor der Antwort stevenbranigan82