Rallentamenti Batch Notturno

lunedì 27 ottobre 2008 - 19.00

stepic77 Profilo | Newbie

Ho l'esigenza di effettuare dei calcoli abbastanza complessi in un batch notturno, il database SQL 2005 oltre al calcolo, inserisce circa 1 milione di righe su una tabella. Per questa elaborazione (un DTSX) non ho bisogno di scrivere sulla Transaction Log di SQL Server ma scrivendoci, sembra andare molto + veloce. Col passare dei giorni, i tempi per l'elaborazione aumentano vertiginosamente tanto da essere costretto ad eseguire "in ordine"

BACKUP LOG MIO_DB WITH TRUNCATE_ONLY
ALTER DATABASE MIO_DB SET RECOVERY SIMPLE
DBCC SHRINKFILE (MIO_DB e log, 10)
ALTER DATABASE MIO_DB SET RECOVERY FULL
e per finire una funzione di IndexOptimize prima di ristabilire una tempistica accettabile.

qual'è la corretta procedura per ottenere la maggior velocità del processo?

lbenaglia Profilo | Guru

>Per questa elaborazione (un DTSX) non ho bisogno di scrivere sulla Transaction
>Log di SQL Server ma scrivendoci, sembra andare molto + veloce.
Iniziamo col dire che NON E' possibile evitare il logging delle transazioni sul t-log.

>Col passare dei giorni, i tempi per l'elaborazione aumentano
>vertiginosamente tanto da essere costretto ad eseguire "in ordine"
>
>BACKUP LOG MIO_DB WITH TRUNCATE_ONLY
>ALTER DATABASE MIO_DB SET RECOVERY SIMPLE
>DBCC SHRINKFILE (MIO_DB e log, 10)
>ALTER DATABASE MIO_DB SET RECOVERY FULL
>e per finire una funzione di IndexOptimize prima di ristabilire
>una tempistica accettabile.

Azz... Perché utilizzi il recovery model a full se poi ti tocca troncarlo?
Se non hai implementato una politica di backup basata sul t-log, imposta il recovery model a simple e vivi felice

>qual'è la corretta procedura per ottenere la maggior velocità
>del processo?
1) Conoscere i dettagli del tuo "processo"
2) Implementare una corretta indicizzazione e relativa manutenzione.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

stepic77 Profilo | Newbie

OK vado col recovery model a simple , avevo impostato il full per essere più sicuro anche se effettivamente.... non mi serve.
per Implementare una corretta indicizzazione, cosa intendi?

lbenaglia Profilo | Guru

>OK vado col recovery model a simple , avevo impostato il
>full per essere più sicuro anche se effettivamente.... non mi
>serve.
"Più sicuro" in che senso?
Per quale motivo il simple recovery model ti fa sentire "insicuro"?

>per Implementare una corretta indicizzazione, cosa intendi?
Creare gli indici che servono e manutenerli deframmentantoli o ricreandoli quando necessario.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5