salve,
marcoorru ha scritto:
.....
Ultimamente per problemi di sovraccarico del db (era diventato molto lento)abbiamo pensato di modificare l'opzione Recovery Model da 'full' a 'simple' andando nelle proprieta del db da Enterprise Manager e poi nella cartella 'Options'
sembra proprio che da quel momento siano iniziati ad apparire gli errori di 'Transaction deadlocked...'
DOMANDA è possibile che ci sia una relazione tre la mia impostazione e l'errore riscontrato????
grazie mille
no, il cambiamento di modello di recovery non puo' influire sulla gestione dei lock..
modificando il modello di recovery cambia "solo" (
) la capacita' di SQL Server di gestire recovery puntuali e backup di transaction log, vista la natura stessa del recovery mode "simple", che altro non fa che applicare alle pagine dati le modifiche apportate e presenti nel log delle transazioni al momento dell'esecuzione dei checkpoints, comprendendo nello stesso tempo alla eliminazione virtuale dei LSN (Log Sequence Number) relativi alle transazioni "scadute", rendendo quindi possibile il riciclo dello spazio da loro utilizzato ..
molto brevemente, SQL Server gestisce il transaction log internamente con dei punti di transazione LSN (Log Sequence Number)..
Tutte le operazioni che vengono effettuate scrivono nel log un'entry che descrive esattamente le modifiche apportate e tutte le entries che fanno capo alla stessa transazione vengono raggruppate in modo da poter abortire o committare l'itera operazione.
Il buffer manager garantisce che il transaction log sia scritto prima dell'esecuzione delle modifiche, e cio' avviene scrivendo nell'heder di ogni data page modificata il LSN al quale la modifica si riferisce. Le cosidette Dirty pages vengono scritte fisicamente su disco al momento in cui il LSN della pagina e' inferiore al LSN nella ultima pagina del log.
L'utilizzo dello spazio fisico nel log delle transazioni e' circolare, nel senso che avviene per scritture sucessive al primo LSN dallo spazio iniziale
di questo.
Al momento della scrittura fisica nelle pagine dati, tutti i LSN committati saranno annullati e lo spazio da loro occupato viene reso libero; cio' puo' causare l'utilizzo degli ultimi Kb del log ed inutilizzazione della parte iniziale dell'allocazione.
saluti