Dato: SQL Server 2008 R2. Chiudere alcuni dischi di velocità. Registra i dischi in ritardo.Ottimizzazione delle massicce prestazioni dell'inserto ...?
Obbligatorio: MOLTISSIMO MOLTO LOTTO di inserti. Come 10.000 a 30.000 righe in una tabella semplice con due indici al secondo. Gli inserti hanno un ordine intrinseco e non si ripeteranno, in quanto tale ordine di inserti non deve essere mantenuto a breve termine (cioè più inserimenti paralleli sono ok).
Finora: accumulo di dati in una coda. Regolarmente (threadpool asincrono) svuota fino a 1024 voci in un elemento di lavoro che viene messo in coda. Threadpool (classe personalizzata) ha 32 possibili thread. Apre 32 connessioni.
Problema: le prestazioni sono disattivate di un fattore di 300 .... vengono inserite solo 100-150 righe al secondo. Il tempo di attesa del registro è pari al 40% - 45% del tempo di elaborazione (ms al secondo) nel server SQL. Il carico della CPU del server è basso (dal 4% al 5% circa).
Non utilizzabile: inserto di massa. I dati devono essere scritti il più possibile in tempo reale sul disco. Questo è praticamente un processo archivl di dati che attraversano il sistema, ma ci sono query che richiedono l'accesso ai dati regolarmente. Potrei provare a scaricarli su disco e utilizzando il caricamento collettivo 1-2 volte al secondo .... proveremo.
Qualcuno un'idea intelligente? Il mio prossimo passo è spostare il log su un set di dischi veloci (128 gb ssd moderno) e vedere cosa succede allora. Il significativo aumento delle prestazioni probabilmente farà cose abbastanza diverse. Ma anche allora ... la domanda è se/cosa sia fattibile.
Quindi, si prega di accendere le idee intelligenti.
hai mai ottenere una risoluzione finale a questo? – Carth