Cos'è l'operatore BMK in SQLServer


8

Stavo cercando di rispondere a questa domanda affermando che la clausola è facoltativa ... Ma sono bloccato con un operatore nel piano ... sotto è lo screenshot del piano di esecuzione ..

inserisci qui la descrizione dell'immagine

Come puoi vedere, c'è un operatore BMK nel piano di query, ma nessuna indicazione mostra come viene calcolato.

passaggi che ho provato finora:
ho iniziato a cercare con BMK1000, ma mostra un sacco di domande con lo stesso operatore. Finalmente ho trovato un thread che dice "Il BMK a cui fai riferimento è la posizione di archiviazione all'interno dell'heap che viene mantenuto con l'indice non cluster anziché la chiave del cluster. ".. Ma non sono sicuro di come questo sia correlato a me, dal momento che non ho indici ..

CHIEDERE:
cos'è l'operatore BMK e come viene calcolato. Anche tutti i puntatori saranno utili

Ecco SQLFiddle per risolvere il problema

Risposte:


11

Non è un operatore a sé stante. È una colonna di output dell'operatore di scansione della tabella sull'heap. È il "segnalibro" che contiene l'indirizzo fisico della riga (questo è lo stesso segnalibro a cui si fa riferimento nella frase "ricerca segnalibri").

Questo viene passato lungo la pipeline nell'operatore di aggiornamento in modo che sappia quale riga deve essere aggiornata.

In SQL Server 2016 è possibile visualizzare i valori effettivi per questa colonna utilizzando l' query_trace_column_valuesevento esteso

inserisci qui la descrizione dell'immagine

Collegare quelli in sys.fn_PhysLocFormattermostra ilfile:page:slot

SELECT sys.fn_PhysLocFormatter(0xB002000001), 
       sys.fn_PhysLocFormatter(0xB0020000010001)

ritorna

+------------------+------------------+
| (No column name) | (No column name) |
+------------------+------------------+
| (1:688:0)        | (1:688:1)        |
+------------------+------------------+
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.