Frage

Ich habe den SQL -Text "Select * aus Tabelle 1 mit (Nolock)".

Zwei Fragen:

  1. Wie kann ich meinen Kläraner den Nolock -Hinweis verwenden, ohne diesen in den SQL -Text aufzunehmen? Ich habe buchstäblich Tausende von Tadoquery mit ihrem SQL dynamisch aufgebaut, und es wäre schwierig, sie alle mit (Nolock) zu erweitern, ganz zu schweigen davon, dass ich mit anderen Datenbankplattformen als MSSQL benutze. Gibt es ein Kluge Eigentum?

  2. Wie erreiche ich dasselbe mit einem machbaren? Tadotable hat kein SQL. Wie kann ich ihm den Nolock -Hinweis verwenden?

Vielen Dank

War es hilfreich?

Lösung

Wenn Sie MS SQL verwenden, führen Sie die Anweisung einmal in der Verbindung aus

Setzen Sie die Transaktions -Isolationsstufe Lesen Sie nicht übereinstimmende

Jubeln ap

Andere Tipps

Tipps sind datenbankspezifisch. Dadurch müssen Sie die richtige für jede unterstützte Datenbank ausgeben. In einigen Datenbanken gibt es auch nichts Äquivalentes, beispielsweise erlaubt Oracle nichts gleich (Leser blockieren niemals Schriftsteller und Schriftsteller, die Leser niemals blockieren, dadurch keine Notwendigkeit).

IMHO, Sie sollten mühsame Komponenten überhaupt nicht verwenden - sowieso haben Sie keine Möglichkeit, einen Hinweis für die generierte Abfrage anzugeben - was sowieso viel zu allgemein ist.

Auch du solltest sein SEHR Achten Sie darauf, Nolock zu verwenden. Es bedeutet, ungezwungen zu lesen, auch bekannt als Dirty liest. Sie umgehen den Transaktionsschutz, und wenn Sie nicht einen sehr guten Grund haben, ihn zu umgehen, sollten Sie dies nicht tun - der Leistungsgewinn kann den Verlust der Datenintegrität und -konsistenz möglicherweise nicht wert sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top