Domanda

Ho un'applicazione che parla a diverse fonti interne ed esterne con sapone, servizi REST o semplicemente utilizzando stored procedure del database. Ovviamente, le prestazioni e la stabilità è una questione importante che ho a che fare con. Anche quando gli endpoint eseguono al loro meglio, per grandi insiemi di dati, ho facilmente vedere le chiamate che prendono 10s di secondi.

Quindi, io sto cercando di migliorare le prestazioni della mia domanda prefetching dei dati e la memorizzazione in locale -. In modo che almeno le operazioni di lettura sono veloci

Mentre la mia domanda è il principale consumatore e produttore di dati, alcuni dei dati può cambiare dall'esterno la mia domanda anche che non ho alcun controllo. Se io usando il caching, avrei saputo mai quando per invalidare la cache quando tali dati cambia da fuori la mia domanda.

Quindi penso che la mia unica opzione è quella di avere un lavoro di pianificazione in esecuzione che aggiorna costantemente il database. Potrei dare priorità gli utenti in base a quanto spesso il login e utilizzare l'applicazione.

sto parlando di circa 50 mila utenti, e di almeno 10 punti finali che sono terribilmente lento e talvolta può prendere un minuto per una singola chiamata. Sarebbe qualcosa di simile al quarzo darmi la scala ho bisogno? E come potrei ottenere intorno alla cedolare diventare un singolo punto di errore?

Io sono solo alla ricerca di qualcosa che non richiede manutenzione elevati, e una velocità di almeno alcuni dei sottosistemi complessi minori - se non la maggior parte. Eventuali suggerimenti?

È stato utile?

Soluzione

Questo suona come potrebbe essere necessario un data warehouse. Si potrebbe aggiornare il data warehouse dalle varie fonti, su ciò che era necessario orario. Tuttavia, tutte le operazioni di sola lettura sarebbe venuto dal data warehouse, e non richiederebbe chiamate immediate alle varie fonti esterne.

Questo presuppone che non è necessario l'accesso in tempo reale alle più dati aggiornati. Anche se si ha bisogno di dati precisi al giro di un'ora passata da una fonte particolare, che solo significa che si avrebbe bisogno di aggiornare da quella fonte ogni ora.

Non hai detto quello che le piattaforme che si sta utilizzando. Se si sta utilizzando SQL Server 2005 o versione successiva, mi sento di raccomandare SQL Server Integration Services (SSIS) per l'aggiornamento del data warehouse. E 'fatta proprio per questo genere di cose.

Naturalmente, a seconda delle scelte piattaforma, ci possono essere alternative che sono più appropriati.


Ecco alcune risorse su SSIS e dati magazzini. So che hai dichiarato che non si prevede di utilizzare i prodotti Microsoft. Includo questi collegamenti come un punto di riferimento: sono questi i prodotti di cui parlavo sopra

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top