Questo è eccessivo? Utilizzo di query e cubi MDX anziché procedure memorizzate SQL

1

Sono nuovo nei cubi di Microsoft SQL Server Analysis Services e nelle query MDX. Dove lavoro, abbiamo una tabella vendite giornaliera in SQL Server 2005 che contiene già un aggregato di informazioni di vendita per negozio al giorno. Al momento contiene solo 164.000 righe. Abbiamo un cubo di vendita dedicato a questa tabella che circa 15 report sono basati su. Ora, dovrei anche notare che generiamo rapporti basati sui criteri del nostro anno fiscale: un anno di 13 periodi (1 mese equivale a 28 giorni ecc.).

Questo è eccessivo? A che punto è giustificato iniziare a utilizzare SSAS Cubes / MDX su semplici stored procedure SQL Server precedenti? Dal momento che ho sempre usato semplicemente il vecchio SQL sono arrivato tragicamente in ritardo alla festa MDX?

    
posta programmer 14.06.2012 - 18:58
fonte

3 risposte

2

Generalmente le persone non seguono il percorso datawarehousing fino a quando le prestazioni non risentono del server di produzione. Con report e aggregazioni di grandi dimensioni, la reportistica, in particolare con dati di uno o più anni, può essere estremamente lenta in un database relazionale ordinario. È particolarmente vero quando un report che ha restituito solo 200 record quando è stato creato restituisce 2 milioni di record a dicembre e ha 20 o 30 calcoli che finiscono per essere elaborati riga per riga attraverso le funzioni. E a volte gestendo quegli enormi rapporti finisce per fermare il lavoro di qualcun altro. Quindi il lavoro viene spostato in un data warehouse e le persone del report sono felici perché i loro report vengono eseguiti più velocemente e gli utenti sono contenti perché non rallentano una volta al mese quando i report vengono eseguiti e le persone BI sono felici perché hanno sempre lavoro per fare e perché vengono pagati meglio di qualcuno che scrive solo il codice t-sql!

    
risposta data 15.06.2012 - 19:16
fonte
3

Stai davvero facendo le domande sbagliate. I grandi sono "Funziona attualmente?" E "Produce risultati abbastanza rapidamente?" Se sono entrambi veri, sarà una vendita terribilmente difficile da cambiare a qualsiasi altra cosa, anche se sembra essere più efficiente per farlo in un altro modo. Questo perché la qualsiasi modifica ha dei rischi; in particolare, il rischio che qualcuno faccia qualcosa di stupido e rompa le cose per caso. Per cambiare qualcosa, devi dimostrare che il beneficio del cambiamento supera il rischio inevitabile (tenendo presente che la maggior parte delle persone non è molto brava a comprendere i rischi in primo luogo e che non tutti i rischi sono monetari).

Per quanto riguarda il motivo per cui questo tipo di soluzione è stata utilizzata in primo luogo, potrebbe essere che questa fosse semplicemente la tecnologia che gli sviluppatori sapevano che avrebbero potuto funzionare in un ragionevole lasso di tempo, o che in realtà potrebbe essere vantaggioso in qualche modo non lo sai ancora. Il tuo primo passo deve essere quello di scoprire quale sia la storia del sistema.

    
risposta data 15.06.2012 - 00:07
fonte
2

È eccessivo? Sulla base delle informazioni fornite, direi probabilmente sì. Dato che la tabella è relativamente piccola e sembra che gli utenti siano per lo più interessati a un numero limitato di report "in scatola", potrebbe essere più semplice consegnare i report utilizzando SSRS e le stored procedure eseguite direttamente sul tavolo.

Nella mia esperienza i cubi sono più preziosi quando si ha un gran numero di utenti che vogliono creare i propri report, approfondire, suddividere i dati in modi diversi ecc. Con set di dati molto grandi possono anche a volte essere vantaggi prestazionali con cubi. Inoltre, alcuni tipi di query sono più facilmente espressi usando MDX.

D'altra parte a volte c'è un modo giusto o sbagliato di fare qualcosa in modo chiaro, quindi non perderei il sonno su di esso.

    
risposta data 16.06.2012 - 01:57
fonte

Leggi altre domande sui tag