Per domande sui "livelli di isolamento": l'impostazione che specifica le garanzie applicabili di concorrenza e coerenza nei sistemi di database multiutente.
La maggior parte del forum e dell'esempio online suggeriscono sempre di avere entrambi ALLOW_SNAPSHOT_ISOLATIONe READ_COMMITTED_SNAPSHOTimpostare su ON ogni volta che qualcuno sta chiedendo un'istantanea, il controllo delle versioni delle righe o una domanda simile. Immagino che la parola SNAPSHOT in entrambe le impostazioni diventi un po 'confusa. Ho pensato che, …
Supponiamo che tu abbia il seguente codice (ignora che è terribile): BEGIN TRAN; DECLARE @id int SELECT @id = id + 1 FROM TableA; UPDATE TableA SET id = @id; --TableA must have only one row, apparently! COMMIT TRAN; -- @id is returned to the client or used somewhere else …
Uso SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTEDla maggior parte delle mie query SQL generali, principalmente perché questo mi è stato approfondito durante l'apprendimento della lingua. Secondo la mia comprensione, questo livello di isolamento agisce nello stesso modo che WITH (NO LOCK)comunque io tendo sempre a usare SET TRANSACTION ISOLATION LEVEL …
Ho fatto alcuni test usando READ_COMMITTEDe READ_UNCOMMITTEDa casa, usando la tecnologia JDBC. Vedo che READ_UNCOMMITTEDpuò effettivamente leggere dati non impegnati, ad esempio dati da alcune transazioni non ancora impegnate (potrebbe eseguire una query UPDATE). Domande Dove vengono archiviati i dati non impegnati, in modo tale che una READ_UNCOMMITTEDtransazione possa leggere …
Prefazione La nostra applicazione esegue diversi thread che eseguono DELETEquery in parallelo. Le query influiscono su dati isolati, ovvero non dovrebbe esserci alcuna possibilità che si DELETEverifichino contemporaneamente sulle stesse righe da thread separati. Tuttavia, per documentazione, MySQL utilizza il cosiddetto blocco "chiave successiva" per le DELETEistruzioni, che blocca sia …
Come tutti sappiamo, READ UNCOMMITTED è il livello di isolamento più basso in cui possono accumularsi cose come letture sporche e letture fantasma. Qual è il momento migliore per utilizzare questo livello di isolamento e per quali motivi potrebbe essere utilizzato? In realtà ho letto le risposte prima, ma non …
Ho letto che se uso IsolationLevel.ReadUncommitted, la query non dovrebbe emettere alcun blocco. Tuttavia, quando ho provato questo, ho visto il seguente blocco: Tipo risorsa: HOBT Request_Mode: S (condiviso) Che cos'è un blocco HOBT? Qualcosa correlato a HBT (Heap o Binary Tree lock)? Perché dovrei ancora ottenere un lucchetto a …
All'interno di una procedura memorizzata, ho il seguente: (sql server 2008) SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRANSACTION getStuff BEGIN TRY /* some selects, updates, etc, etc. */ .... COMMIT TRANSACTION getStuff END TRY BEGIN CATCH ... END CATCH Dal momento che questo è basato sulle transazioni, il mio pensiero …
Ho una transazione di lunga durata (chiamata, diciamo, T1) che esegue alcune eliminazioni, aggiornamenti e inserimenti su una tabella in SQL Server 2008 R2. Allo stesso tempo, un altro processo esegue periodicamente istruzioni select da questa tabella. Con le impostazioni di isolamento predefinite (LEGGI IMPEGNATO, penso?), T1 blocca l'esecuzione di …
Io e un mio collega abbiamo discusso delle implicazioni dell'uso del livello di isolamento serializzabile. Ha detto che ha bloccato l'intero tavolo, ma non sono d'accordo sul fatto che dirgli che potrebbe potenzialmente, ma cerca di applicare i blocchi di intervallo e non applica la vera serializzazione come spiegato qui: …
Sto leggendo un libro relativo a transazioni e concorrenza. In un paragrafo si menziona che: Nell'istanza locale di SQL Server il livello di isolamento predefinito è Read-Committed in base al blocco E la frase successiva è: L'impostazione predefinita nel database SQL è Read - commit snapshot basato sul controllo delle …
Ho una procedura memorizzata che richiede una tabella di coda occupata che viene utilizzata per distribuire il lavoro nel nostro sistema. La tabella in questione ha una chiave primaria su WorkID e nessun duplicato. Una versione semplificata della query è: INSERT INTO #TempWorkIDs (WorkID) SELECT W.WorkID FROM dbo.WorkTable W WHERE …
L'articolo in linea MSDN " Isolamento snapshot in SQL Server " afferma: "Un livello di isolamento ha un ambito a livello di connessione e, una volta impostato per una connessione con l'istruzione SET TRANSACTION ISOLATION LEVEL, rimane attivo fino alla chiusura della connessione o all'impostazione di un altro livello di …
Sembra che stia ottenendo molti deadlock quando si seleziona select count (*) su una tabella particolare. Ho già modificato tutti i parametri richiesti e li ho trasformati in blocco solo riga. Ho anche modificato il database per utilizzare l'isolamento READ_COMMITTED_SNAPSHOT, tuttavia, sembra che usando un conteggio selezionato (*) dove colonna …
Ho molti deadlock in corso nel mio sistema. Vorrei utilizzare Isolamento istantanea per risolverli, ma il mio DBA ha delle riserve a riguardo. Una delle sue preoccupazioni è che l'isolamento dell'istantanea rallenta le scritture. Questo perché deve scrivere nella cache e quindi nel TempDb (versione riga) e quindi può tornare …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.