tipos subconsultas ejemplos datos consultas concatenar avanzadas sql performance query-optimization sql-server-2012

subconsultas - subquery sql server ejemplos



Subconsulta v/s uniĆ³n interna en servidor sql (5)

En Sql Server Management Studio puede habilitar " Estadísticas del cliente " y también incluir el plan de ejecución real . Esto le dará la posibilidad de conocer con precisión el tiempo de ejecución y la carga de cada solicitud.

También entre cada solicitud, limpie el caché para evitar el efecto secundario del caché en el rendimiento

USE <YOURDATABASENAME>; GO CHECKPOINT; GO DBCC DROPCLEANBUFFERS; GO

¡Creo que siempre es mejor ver con nuestros propios ojos que confiar en la teoría!

Tengo las siguientes consultas

Primero uno usando la unión interna

SELECT item_ID,item_Code,item_Name FROM [Pharmacy].[tblitemHdr] I INNER JOIN EMR.tblFavourites F ON I.item_ID=F.itemID WHERE F.doctorID = @doctorId AND F.favType = ''I''

segundo utilizando sub consulta como

SELECT item_ID,item_Code,item_Name from [Pharmacy].[tblitemHdr] WHERE item_ID IN (SELECT itemID FROM EMR.tblFavourites WHERE doctorID = @doctorId AND favType = ''I'' )

En esta tabla de elementos [Pharmacy].[tblitemHdr] Contiene 15 columnas y 2000 registros. Y [Pharmacy].[tblitemHdr] contiene 5 columnas y alrededor de 100 registros. En este escenario, ¿ which query gives me better performance?


La primera consulta es mejor que la segunda consulta ... porque la primera consulta nos une a ambas tablas. y también verifique el plan de explicación para ambas consultas ...


Por lo general, las combinaciones funcionarán más rápido que las consultas internas, pero en realidad dependerá del plan de ejecución generado por SQL Server. No importa cómo escriba su consulta, SQL Server siempre la transformará en un plan de ejecución. Si es lo suficientemente "inteligente" para generar el mismo plan desde ambas consultas, obtendrá el mismo resultado.

Here y here algunos enlaces para ayudar.


Sub-consulta Vs Join

Tabla uno 20 filas, 2 cols.

Tabla dos 20 filas, 2 cols.

sub-consulta 20 * 20

unirse 20 * 2

lógico, rectificar

Detallado

El conteo de escaneo indica el efecto de multiplicación ya que el sistema tendrá que pasar una y otra vez para obtener datos, para su medida de rendimiento, solo mire la hora


unirse es más rápido que la subconsulta.

la subconsulta hace que el acceso al disco esté ocupado, piense en la aguja de lectura-escritura (¿cabeza?) del disco duro que va y viene cuando accede: Usuario, SearchExpression, PageSize, DrilldownPageSize, User, SearchExpression, PageSize, DrilldownPageSize, User ... en.

Unir funciona concentrando la operación en el resultado de las dos primeras tablas, cualquier unión subsiguiente concentrará la unión en el resultado en memoria (o en caché en el disco) de las primeras tablas unidas, y así sucesivamente. menos movimiento de lectura-escritura de la aguja, por lo tanto más rápido

Fuente: Here