Risorse per comprendere il blocco e la concorrenza di SQL Server?


8

Come dimostrato da una recente domanda sul blocco delle miniere e sulla concorrenza, sono DIFFICILI.

Puoi suggerire qualche buona risorsa per i professionisti SQL da intermedio a avanzato per fare uno studio approfondito su questi che, correttamente appreso, consentirebbero una migliore navigazione di tutte le insidie ​​intrinseche in quest'area?

Sto pensando a tutti i tipi di risorse: tutorial, blog, pagine di manuale, sessioni PASS o altro.

Risposte:


7

Il miglior libro sull'argomento e la risorsa più completa sono gli interni SQL Server 2008 di Kalen Delaney. Non puoi davvero fare di meglio. Un altro buon libro sull'argomento è la risoluzione interna e risoluzione dei problemi di SQL Server 2008 di Chris Bolton. Non penso sia completo come il libro di Kalen, ma copre abbastanza bene le cose, specialmente riguardo al blocco e alla concorrenza.


Devo confermare il suggerimento di Grant: SQL Server 2008 Internals di Kalen Delaney è una risorsa FANTASTICA! Si siede sulla mia scrivania in ogni momento.
OliverAsmus,

7

Mentre i libri specifici per prodotto fanno un ottimo lavoro nello spiegare come usare i prodotti (e la serie di Kalen Delaney è fantastica!), Non hanno davvero alcuna possibilità contro il "libro nero" e il "libro rosso" dei sistemi di database. Soprattutto il libro nero (il primo link) è praticamente una lettura obbligatoria se vuoi capire questi concetti. Il libro rosso è una raccolta di articoli di ricerca, molti disponibili online. Tengo una pagina con collegamenti ad alcuni di essi . Il terzo libro collegato è sostanzialmente una riscrittura più aggiornata del "libro nero" (anche più economico e disponibile su Kindle ...)

Ci sono anche molti buoni blog, prima di tutto consiglierei il blog CSS di SQL Server .


5

Il blocco e la concorrenza è un argomento di cui ho imparato di più attraverso i test e l'osservazione.

Inizia leggendo i livelli di isolamento nel Motore di database e gli effetti di concorrenza , in modo da avere una comprensione della relazione tra i due. Ora puoi sperimentare:

  • Costruire l'SQL per una transazione di prova. Qualcosa di semplice e autonomo con un contesto / dominio che capisci, ad esempio checkout del carrello o bonifico bancario. Assicurarsi di disporre di un metodo per verificare che i dati siano nello stato previsto dopo il test.
  • Esegui il tuo scenario, osservando il tipo, la durata e la sequenza dei blocchi applicati dal motore di database.
  • Modificare il livello di isolamento o applicare suggerimenti e osservare la modifica dei blocchi eseguiti.
  • Quando pensi di avere una transazione che sopravviverà alla concorrenza , caricala testandola.

Tendo a controllare le sequenze di blocco con flag di traccia 1200 o traccia di Profiler . Credo che potrebbero essere utilizzati anche eventi estesi, ma non ho ancora provato me stesso.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.