Vamos a imaginar un escenario tipo con dos tablas en las que existe una relación 1:n. Una tabla será de Clientes y la otra con los distintos Teléfonos de cada uno de los clientes.
El objetivo es devolver un listado con todos los clientes y el primer teléfono asociado a cada uno. Es un ejemplo muy simple, que nos servirá para aprender a no hacer las cosas como primero nos viene a la mente, sino siempre aplicando la mayor optimización posible. Insertemos ahora algunos registros de ejemplo:
Una primera solución podría ser:
Pero si creamos una función que nos devuelva ese primer valor y luego la aplicamos con un CROSS APPLY a la tabla Cliente obtenemos las mismas tuplas, pero de manera más óptima.
Prueba a aplicar este tipo de queries en tu base de datos, que seguro tienes por ahí muchos cursores y queries tipo la primera solución anterior, y ya se sabe: los cursores en T-SQL no son muy óptimos, y como vemos tampoco son necesarios casi nunca. Nos vemos.
No hay comentarios :
Publicar un comentario