Ressourcen zum Verständnis der SQL Server-Sperrung und Parallelität?


8

Wie eine aktuelle Frage der Minensperrung und der Parallelität zeigt, sind sie SCHWER.

Können Sie gute Ressourcen für fortgeschrittene SQL-Experten vorschlagen, um eine gründliche Studie zu diesen Themen durchzuführen, die, wenn sie richtig erlernt werden, eine bessere Navigation aller inhärenten Fallstricke in diesem Bereich ermöglichen würde?

Ich denke an alle Arten von Ressourcen - Tutorials, Blogs, Handbuchseiten, PASS-Sitzungen oder irgendetwas.

Antworten:


7

Das beste Buch zu diesem Thema und die umfassendste Ressource ist Kalen Delaneys SQL Server 2008 Internals. Besser geht es wirklich nicht. Ein weiteres gutes Buch zu diesem Thema ist Chris Boltons SQL Server 2008 Internals and Troubleshooting. Ich denke nicht, dass es so vollständig ist wie Kalens Buch, aber es deckt die Dinge ziemlich gut ab, insbesondere in Bezug auf Sperren und Parallelität.


Ich muss mich Grants Vorschlag anschließen - SQL Server 2008 Internals von Kalen Delaney ist eine großartige Ressource! Es liegt immer auf meinem Schreibtisch.
OliverAsmus

7

Produktspezifische Bücher erklären zwar hervorragend, wie die Produkte verwendet werden (und die Serie von Kalen Delaney ist großartig!), Haben aber keine wirkliche Chance gegen das "schwarze Buch" und das "rote Buch" der Datenbanksysteme. Insbesondere das schwarze Buch (der erste Link) ist eine obligatorische Lektüre, wenn Sie diese Konzepte verstehen möchten . Das Rote Buch ist eine Sammlung von Forschungsarbeiten, von denen viele online verfügbar sind. Ich habe eine Seite mit Links zu einigen von ihnen . Das dritte verlinkte Buch ist im Grunde eine aktuellere Neufassung des 'schwarzen Buches' (auch billiger und auf Kindle erhältlich ...)

Es gibt auch einige gute Blogs, ich würde in erster Linie das SQL Server CSS-Blog empfehlen .


5

Sperren und Parallelität ist ein Thema, über das ich durch Testen und Beobachten am meisten gelernt habe.

Beginnen Sie mit dem Lesen der Isolationsstufen im Datenbankmodul und der Parallelitätseffekte , damit Sie die Beziehung zwischen beiden verstehen. Jetzt können Sie experimentieren:

  • Erstellen Sie die SQL für eine Testtransaktion. Etwas Einfaches und in sich geschlossenes mit einem Kontext / einer Domain, die Sie verstehen, z. B. Warenkorbkasse oder Überweisung. Stellen Sie sicher, dass Sie über eine Methode verfügen, mit der überprüft werden kann, ob sich die Daten nach dem Testen im erwarteten Zustand befinden.
  • Führen Sie Ihr Szenario aus und beobachten Sie Art, Dauer und Reihenfolge der vom Datenbankmodul angewendeten Sperren.
  • Ändern Sie die Isolationsstufe oder wenden Sie Hinweise an und beobachten Sie die Änderung der vorgenommenen Sperren.
  • Wenn Sie glauben, eine Transaktion zu haben, die die Parallelität überlebt , testen Sie sie.

Ich neige dazu, Sperrsequenzen mit dem Trace-Flag 1200 oder einem Profiler-Trace zu überprüfen . Ich glaube, erweiterte Ereignisse könnten auch verwendet werden, aber ich habe mich noch nicht selbst ausprobiert.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.