Statistiche con query SQL o JavaScript

0

Ho una tabella excel like con un valore should e un valore is per ogni giorno di un mese:

descrip. |        | 01 | 02 | 03 | 04 |
_______________________________________
column 1 | should | 60 |  0 | 60 |  0 |
         | is     | 60 |  0 | 60 | 60 |
_______________________________________
column 2 | should |  0 | 15 |  0 | 15 |
column 3 | is     |  0 |  0 |  0 | 15 |

Ho bisogno dei valori di questa tabella per due scopi:

  1. Estrai alcune statistiche (totale, dovrebbe / è rapporto, ecc.)
  2. In base ai valori, vedere se le azioni (voce nella colonna) sono state eseguite
    • Solo una volta
    • Una volta alla settimana
    • ogni giorno
    • periodicamente

Devo ottenere le statistiche con query SQL o calcolarle con JavaScript in base alla risposta JSON? Quali sono i (dis) vantaggi

Alcune informazioni aggiuntive:

Uso SpringBoot con JPA e un database PostgreSQL.

Tavoli:

  • Grafico
  • Colonna
  • Azione (dovrebbe / è valori)

Questa è una parte della mia risposta JSON:

"columns": [{
        "id": 12,
        "should": [{
            "id": 13,
            "date": 1438552800000,
            "min": 60
        }],
        "is": []
        }
    }]
    
posta devz 16.08.2016 - 15:51
fonte

2 risposte

1

Come ha detto @Ewan, sarebbe meglio avere queste statistiche già calcolate (abbiamo qui diverse opzioni Ewan ne ha indicato una).

Torna alla domanda, qui alcuni svantaggi di ciascuna soluzione:

  • Lato client : A seconda della complessità dei calc e del volume dei dati da recuperare; caricare la pagina potrebbe richiedere più tempo del solito. Nei client mobili, ha anche un impatto sulla memoria e sulla batteria (la carica è limitata qui). Poi arriva il fatto che le statistiche dovrebbero essere calcolate ogni volta che la pagina viene caricata.

    Importante dire che, se i dati non sono persistenti in alcun tipo di cache, è abbastanza facile sovraccaricare il DBMS semplicemente facendo clic su F5 come un matto.

    Riassumendo, influisce sulla UX e, in alcuni casi, ha un impatto sulle risorse (memoria, batteria, CPU, ...)

  • DB-side : DB è una risorsa condivisa. Alcuni calc possono causare un serio problema di prestazioni al DBMS e qualsiasi applicazione connessa al DB ne subirà le conseguenze.

    A questo punto è utile conoscere la concorrenza (numero possibile di richieste simultanee al DB che richiedono le statistiche) e la frequenza di queste richieste. Anche il volume dei dati e la sua complessità sono importanti.

    Quindi viene la manutenzione. A seconda della complessità delle istruzioni SQL, l'attività potrebbe essere drammatica.

    Tuttavia, i DBMS sono bravi a fare calcoli, aggregati, ecc. Ma dovresti stare attento perché puoi finire con l'abbattere il DBMS (storia vera).

risposta data 15.09.2016 - 21:51
fonte
0

Né, dovresti utilizzare un data warehouse, calcolare le tue statistiche tramite una query MDX e memorizzare il risultato.

il tuo sito web può quindi presentare i risultati memorizzati senza dover ricalcolare su ogni richiesta di pagina.

    
risposta data 16.08.2016 - 16:05
fonte

Leggi altre domande sui tag