Perché - Leggi ma non aggiorna OPS Fail in caso di mancanza di spazio nel database TempDB?
-
02-11-2019 - |
Domanda
Articolo online MSDN "Scegliere livelli di isolamento basati su versioni di riga di riga" stati:
- "tempdb Deve avere abbastanza spazio su disco per il negozio di versioni. Se ci sono transazioni di lunga durata, tutte le versioni generate dalle transazioni di aggiornamento durante il tempo devono essere conservate
tempdb
. Setempdb
Si esaurisce lo spazio, le operazioni di aggiornamento non falliscono, ma le operazioni di lettura che utilizzano la versione di riga potrebbero fallire "
Puoi spiegarmi perché?
Tenendo conto di questo (citando lo stesso articolo):
- "Quando uno
READ_COMMITTED_SNAPSHOT
oALLOW_SNAPSHOT_ISOLATION
Le opzioni di database sono attive, aggiornare ed eliminare le transazioni per un determinato database devono mantenere le versioni di riga anche quando non ci sono transazioni utilizzando un livello di isolamento basato su versioni di riga ... perché le versioni record sono archiviate in tempdb"
Cioè, le operazioni di aggiornamento (ma non letta) richiedono spazio per la versione di riga dovrebbe non aver fallito IMO a causa della mancanza di spazio.
E perché leggi le operazioni falliscono se non richiedono l'archiviazione della versione in tempdb ?
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange