Ist das NOLOCK (SQL Server Hinweis) schlechte Praxis?

Ich arbeite daran, Websites und Anwendungen zu erstellen, die es sindnicht geschäftskritisch -> zB. Bankensoftware, Raumfahrt, Anwendung zur Überwachung der Intensivpflege usw. Sie bekommen die Idee.

Ist es angesichts dieses massiven Haftungsausschlusses schlecht, den NOLOCK-Hinweis in einer Sql-Anweisung zu verwenden? Vor einigen Jahren wurde mir von einem anderen Sql-Administrator vorgeschlagen, NOLOCK zu verwenden, wenn ich mit einem "Dirty Read" zufrieden bin, der mir ein bisschen mehr Leistung aus meinem System bringt, weil jeder Lesevorgang das nicht sperrt Tisch / Reihe / was auch immer.

Mir wurde auch gesagt, dass es eine großartige Lösung ist, wenn ich Dead-Locks erlebe. Also begann ich, diesen Gedanken für ein paar Jahre zu verfolgen, bis mir ein SQL-Guru mit zufälligem Code half und alle NOLOCKS in meinem SQL-Code bemerkte. Ich wurde höflich beschimpft und er versuchte es mir zu erklären (warum es keine gute Sache ist) und ich verirrte mich ein bisschen. Ich hatte das Gefühl, dass die Essenz seiner Erklärung lautete: „Es ist eine Band-Aid-Lösung für ein ernsteres Problem. Besonders, wenn Sie einen Deadlock erleben. Beheben Sie daher die Ursache des Problems.

Ich habe kürzlich ein bisschen gegoogelt und bin auf sie gestoßendieser Beitrag.

Also, können mich einige Senseis von Sql db Guru bitte aufklären?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage