Abfragen einer Sicht vs Tabellen im Dataset SSRS
Gibt es eine best practice, wenn es um die Verwendung von Datasets in SSRS? Sollte ich das schreiben einer Abfrage, die für den dataset, der zieht direkt aus Tabellen, oder sollte ich das erstellen einer Ansicht in der Quelldatenbank, und dann Abfragen die Ansicht über das Dataset?
Ich verstehe, es gibt einige Szenarien, wo die Sicht besser wäre (Zentralisierung, ein view für die Verwendung in mehreren berichten) und einige Szenarien, in denen eine Abfrage der Tabellen wäre besser, (wenn Sie keinen Zugriff zum erstellen von Ansichten in der Quell-DB oder wenn Sie nutzen mehrere DB-Datenquellen in einem einzigen Bericht). Aber gibt es irgendwelche Auswirkungen auf die Leistung? Kann der server noch cache die Ergebnisse der Datenbankabfrage von SSRS in ähnlicher Weise, wie es wäre, die Ergebnisse in einer Ansicht?
Jede Einsicht wird geschätzt 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kommt es an.
Mithilfe einer Ansicht isoliert Sie von der Daten-Modell - änderungen, die Tabellen ändern können, aber wie lange können Sie die Daten aus, wie es vorher war, die Dinge sind in Ordnung. Eine Sicht ist nur eine SQL-Anweisung, es ist wie laufen eine Teilauswahl treffen. Aufgrund der Verkapselung gibt es weitere Risiko, dass die zugrunde liegende Abfrage wäre ineffizienter. Die Verwendung einer materialisierten Sicht (indizierte Sicht in SQL Server) ist eine option, um eine Abfrage schneller, aber die Anforderungen sind sehr begrenzt.
Wenn Sie die Notwendigkeit sehen, für die gleichen Informationen über die zahlreichen Berichte - ja, verwenden Sie eine Ansicht. Ansonsten ist die Abfrage der Tabelle direkt.
Entweder Weg, über die gespeicherte Prozedur...
Und ich würde Sie gegen die Verwendung von sichten, die Verweise auf andere Ansichten. Ich habe gesehen, wie diese performance-Probleme.
Ich in der Regel verwenden Sie gespeicherte Prozeduren, für meine Berichte, so dass jeder code kann wiederverwendet werden (und konsequente). Außerdem kann man dann anwenden von filtern im sp, das verringert Ihre Ladezeit.