PRB: Nested Loop-Verknüpfung, die A "BOOKMARK LOOKUP.. ...with PREFETCH" kann mehr Sperren warten

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

260652
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Problembeschreibung
Wenn ein Ausführungsplan, verwendet eine geschachtelte Schleife Verknüpfung und eine Lesezeichensuche, die die WITH PREFETCH-Klausel verwendet werden die Sperren aufrechterhalten, für die Dauer der die nested Loops-Verknüpfungen qualifizierenden Lesezeichen festlegen. Nachdem die Textmarke, die zum Abrufen der ausstehenden Spaltendaten verwendet wird und die Daten in den Ausgabepuffer eingefügt, wird die Sperre aufgehoben. Dieses Verhalten kann zum Sperren von anderen System Prozess-Ids (Spids) führen.
Abhilfe
Wenn Sie den Verknüpfungshinweis von LOOP HASH oder MERGE zu ändern, tritt die Blockierung nicht auf.
Weitere Informationen
Dieses Verhalten kann mithilfe des folgenden Beispiels veranschaulicht:
SELECT c.mstr_acct, c.last_name_m, c.first_name, c.name_prefix, c.company_nameFROM tickler a  INNER LOOP JOIN member b    ON a.mbr_acct = b.mbr_acct  INNER LOOP JOIN person c    ON b.mstr_acct = c.mstr_acct WHERE a.tickler_code = 'SPIRITEXT' 				
der SHOWPLAN für die vorherige Abfrage folgende Ausgabe:
StmtText                                                                                                                                            ---------------------------------------------------------------------------------------------------------------------------------------------  |--Bookmark Lookup(BOOKMARK:([Bmk1002]), OBJECT:([TestLoopJoin].[dbo].[person] AS [c]) WITH PREFETCH)       |--Nested Loops(Inner Join)            |--Nested Loops(Inner Join)            |    |--Index Seek(OBJECT:([TestLoopJoin].[dbo].[tickler].[tickler_code] AS [a]), SEEK:([a].[tickler_code]='SPIRITEXT') ORDERED)            |    |--Clustered Index Seek(OBJECT:([TestLoopJoin].[dbo].[member].[pk_member] AS [b]), SEEK:([b].[mbr_acct]=[a].[mbr_acct])  ORDERED)            |--Index Seek(OBJECT:([TestLoopJoin].[dbo].[person].[pk_person] AS [c]), SEEK:([c].[mstr_acct]=[b].[mstr_acct]) ORDERED)				
das Sperrverhalten durch Starten von einer anderen Verbindung, die eine UPDATE auf die ersten Zeilen aus der Tabelle ausgewählt werden führt sofort eingehalten wird. Beachten Sie, dass die UPDATE blockiert wird, bis alle Lesezeichen-Lookups für die SELECT-Anweisung verarbeitet und die Zeilen an den Client gesendet werden. Lesezeichen-Suche

Die Bookmark Lookup-logische und physische Operator verwendet ein Lesezeichen (Zeilen-ID oder Gruppierungsschlüssel), um die entsprechende Zeile in der Tabelle oder im gruppierten Index zu suchen. Die Argument-Spalte enthält die Textmarke Beschriftung verwendet, um die Zeile in der Tabelle oder im gruppierten Index zu suchen. Die Argument-Spalte enthält auch den Namen der Tabelle oder gruppierten Index in dem die Zeile gesucht wird. Wenn die WITH PREFETCH-Klausel in der Argument-Spalte angezeigt wird, hat der Abfrageprozessor festgestellt, dass Lesezeichen in der Tabelle oder im gruppierten Index Optimalerweise mit asynchronem prefetching (Read-ahead).

Warnung: Dieser Artikel wurde automatisch übersetzt

Eigenschaften

Artikelnummer: 260652 – Letzte Überarbeitung: 01/16/2015 20:22:33 – Revision: 3.2

  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbpending kbprb KB260652 KbMtde
Feedback