Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#1

Reporting environment: Best practices

  Alt 4. Aug 2014, 22:19
Datenbank: SQL-Server • Version: 2008R2 • Zugriff über: SSRS
Hi,
Ich habe heute ein neues Projekt übernommen: Eine Report-Sammlung für die SQL-Server Reporting Services von Microsoft.

Ich musste erst einmal meinen Schädel sehr kräftig gegen die Wand hämmern, denn der eigentlich geniale SQL-Programmierer hat alle Queries als ein einziges SELECT Statement, implementiert. Die Reports sind ziemlich komplex und damit auch die Queries. Eine Query sieht ungefähr so aus:
Code:
SELECT ....
  FROM (SELECT ... FROM
    (SELECT ... FROM (
        SELECT * FROM Table JOIN foo...
         ) xy
      ) y
    )
   ) X JOIN (<der gleiche dreck wie oben>)
Also SELECTS in SELECTS in SELECTS. Feldlisten mit ca. 20-30 Einträgen, einige Felder wieder mit SELECT und CASE und WHEN und -alter Schwede-

So, eigentlich muss ich erstmal aufräumen, nur wie?

Ich habe das eigentlich immer so gemacht, das ich pro Report eine SP geschrieben habe (oder eine UDF, ist egal)
alle Parameter des Reports sind Parameter der SP/UDF.

Subselects werden vorher in temporäre Tabellen geschrieben oder als View abgebildet, wenn sie wiederverwenden werden können etc. Also DRY-Prinzip anwenden.

Ich hab mich nie drum gekümmert, wie echte Profis das machen, daher meine Frage: Wie macht ihr das? Oder: Gibt es überhaupt jemanden, der Erfahrung mit einem reinen SQL-Reporting Toolset hat (Views? UDF? etc.)

1. Schreibt ihr die Queries als Script im Reportgenerator oder -so wie ich- komplett als UDF/SP?
2. Verwendet ihr Aggregatfunktionen des Reporting-Tools (SSRS, Fast-Report etc.) oder bildet ihr alles in Queries ab?
3. Wo platziert ihr eventuelle Übersetzungen?
4. Wie würdet ihr das DRY-Prinzip im RDBMS umsetzen?
  Mit Zitat antworten Zitat