40 messaggi dal 12 marzo 2012
-un deadlocks si verifica es quando 2 o + processi accedono a una risorsa cercando entrambi di eseguire aggiornamenti su di essa ?
- il codice t-sql consente l'accesso a una tabella bloccandola all'accesso di altri fino al termine della teransazione ?

grz
alberto
1.976 messaggi dal 27 luglio 2005
Contributi
no, un deadlock si ottiene quanto il processo A, che ha un lock sulla risorsa 1, cerca di loccare anche la risorsa 2, mentre il processo B ha un lock sulla risorsa 2 e cerca di loccare anche la risorsa 1... nessuno dei 2 processi riesce ad ottenere il lock successivo ed entrambi risultano bloccati in attesa di un evento (il rilascio del lock sulla risorsa ricercata) che non potra' avvenire... i motori relazionali solitamente sono in grado di rintracciare queste occorrenze e solitamente decidono autonomamente di terminare almeno 1 dei 2 processi...

si, e' possibile fornire HINTS (http://msdn.microsoft.com/en-us/library/ms187373.aspx) specifici richiedendo un escalation di lock a livello di tabella, ad esempio SELECT ... WITH (TABLOCK);

saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.