Jump to content

NO LOCK für Sichten?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo MCSE Community,

ich bin zum ersten mal hier, da ich bisher keine Hilfe brauchte.

 

Nun bin ich gerade am optimieren einiger abfragen und wollte von euch folgendes wissen.

 

Wenn ich eine Sicht mit "NO LOCK" ausgeben lasse, werden dann die in der Sicht enthaltenen Tabellen mit "NO LOCK" behandelt, sprich vererbt?

 

Das würde den ganzen Aufwand um einiges verringern.

 

Vielen Dank schon einmal im vorraus.

 

Mit freundlichem Gruß

Tobias Frömel

Link zu diesem Kommentar

Hallo und willkommen im Forum.

 

Ich vermute mal, dass diese Option den isolation mode temporär (für die Query) auf "Read uncommitted" bzw. "dirty read" stellt.

 

Was genau soll da vererbt werden ?

 

Dieser Isolation-Mode sollte nur mit Bedacht eingesetzt werden und auch nur, wenn die Genauigkeit der Daten keine Rolle spielt.

 

Siehe u.a. auch Isolation (database systems) - Wikipedia, the free encyclopedia

Link zu diesem Kommentar
Hallo und willkommen im Forum.

 

Ich vermute mal, dass diese Option den isolation mode temporär (für die Query) auf "Read uncommitted" bzw. "dirty read" stellt.

 

Was genau soll da vererbt werden ?

 

Dieser Isolation-Mode sollte nur mit Bedacht eingesetzt werden und auch nur, wenn die Genauigkeit der Daten keine Rolle spielt.

 

Siehe u.a. auch Isolation (database systems) - Wikipedia, the free encyclopedia

Hallo,

vielen Danl für deine Antwort, keider kann ich mit "isolation mode" und "read uncommited" bzw. "dirty read" nichts anfangen :)

 

Die Genauigkeit der Daten spielt eigentlich keine große Rolle.

 

Was ich meine mit Vererbung, versuche ich an einem Beispiel zu verdeutlichen:

 

Die Sicht wird wie folgt abgefragt

SELECT * FROM [xx].[dbo].[abfrage_alle] with (NOLOCK)

welches folgende Abfrage enthält:

SELECT dbo.xxx.EON, dbo.yyy.Eingang, dbo.zzz.Name1
FROM dbo.yyy RIGHT OUTER JOIN
    dbo.xxx ON dbo.yyy.EON = dbo.xxx.EON LEFT OUTER JOIN
    dbo.zzz ON dbo.xxx.KundenAdresse = dbo.zzz.Adresse

 

Bewirkt das bei der Sicht angehängte NOLOCK, das gleiche wie wenn ich es so machen würde:

SELECT dbo.xxx.EON, dbo.yyy.Eingang, dbo.zzz.Name1
FROM dbo.yyy WITH (nolock) RIGHT OUTER JOIN
    dbo.xxx WITH (nolock) ON dbo.yyy.EON = dbo.xxx.EON LEFT OUTER JOIN
    dbo.zzz WITH (nolock) ON dbo.xxx.KundenAdresse = dbo.zzz.Adresse

 

Oder muss ich definitiv in der Abfrage der Sicht bei jeder Tabelle das NOLOCK einzeln setzen?

 

Mit freundlichem Gruß

Tobias Frömel

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...