Blocking Operations

El plan de acceso indica las operaciones elementales que ejecuta la Base de Datos para resolver una sentencia.

Estos pasos elementales los podemos clasificar en:

  • Blocking operations
    • No devuelven ningún registro hasta que han trabajado con el conjunto completo de registros.ç
    • Típicamente, tardan mucho en devolver el primer registro y, una vez devuelto el primero, devuelven el resto de forma muy rápida.
    • Ejemplo: SORT. Una ordenación no devuelve ningún registro hasta haber terminado totalmente la ordenación
  • Non blocking operations.
    • Devuelven cada registro conforme lo van obteniendo.
    • Típicamente devuelven elprimer registro de forma muy rápida, pero tardan más en devoilver la totalidad.


El conocimiento de las blocking operation puede ser de vital importancia en entornos OLTP donde, por regla general, se debe primar la obtención de los primeros registros a la obtención de la totalidad de los registros: si el plan de ejecución incluye blocking operations, el primer registro no estará disponible hasta que estén todos calculados.
En la práctica, una sentencia SQL se comportará como Nom Blocking cuando todos los pasos del plan de ejecución sean Nom Blocking.

  • Las principales blocking operations son (deberían evitarse en entornos OLTP):
    • SORT en todas sus variantes
    • GROUP BY en todas sus variantes
    • HASH JOIN
    • MERGE JOIN
    • BITAND / BITOR de índices Bitmap.

 

  • Las principales Non Blockin Operations son:
    • Acceso por índice (cualquier tipo)
    • Acceso a la tabla (cualquier tipo)
    • Nested Loops