¿Qué es el operador BMK en SQLServer?


8

Estaba tratando de responder a esta pregunta que indica que la cláusula es opcional ... Pero estoy atascado con un operador en el plan ... a continuación hay una captura de pantalla del plan de ejecución ...

ingrese la descripción de la imagen aquí

Como puede ver, hay un operador BMK en el plan de consulta, pero no hay ninguna indicación que muestre cómo se calcula.

pasos que he probado hasta ahora:
comencé a buscar con BMK1000, pero muestra un montón de preguntas con el mismo operador. Finalmente encontré un hilo que dice "El BMK al que hace referencia es la ubicación de almacenamiento dentro del montón que se mantiene con el índice no agrupado en lugar de la clave del clúster ". Pero no estoy seguro de cómo se relaciona esto conmigo, ya que no tengo ningún índice ...

PREGUNTE:
qué es el operador BMK y cómo se calcula. Cualquier puntero también será útil

Aquí está SQLFiddle para reprobar el problema

Respuestas:


11

No es un operador en sí mismo. Es una columna de salida del operador de exploración de tabla en el montón. Es el "marcador" que contiene la dirección física de la fila (este es el mismo marcador al que se hace referencia en la frase "búsqueda de marcadores").

Esto se pasa a lo largo de la tubería al operador de actualización para que sepa la fila que debería actualizar.

En SQL Server 2016 puede ver los valores reales de esta columna utilizando el query_trace_column_valuesevento extendido

ingrese la descripción de la imagen aquí

Conectarlos en sys.fn_PhysLocFormattermuestra elfile:page:slot

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

Devoluciones

+------------------+------------------+
| (No column name) | (No column name) |
+------------------+------------------+
| (1:688:0)        | (1:688:1)        |
+------------------+------------------+
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.