2010-03-30 7 views
10

Merge puede realizar operaciones de inserción, actualización o eliminación en una tabla de destino en función de los resultados de una combinación con una tabla de origen. Por ejemplo, puede sincronizar dos tablas insertando, actualizando o eliminando filas en una tabla según las diferencias encontradas en la otra tabla.¿Cuál es el rendimiento de la cláusula "Merge" en el servidor sql 2008?

¿Alguien está familiarizado con el rendimiento para usar "Merge" versus la lógica tradicional para verificar la existencia y decidir la actualización o insertarla?

Gracias!

Respuesta

8

MERGE es generalmente más rápido porque hay menos operaciones DML, y también es el enfoque recomendado de la documentación. Con la forma "tradicional", está procesando las tablas dos veces: una para verificar la existencia y otra para ejecutar su DML. Con MERGE, todo se encapsula con una operación, por lo tanto, un conjunto de bloqueos emitidos, un conjunto de registros, etc. etc.

Sin embargo, es bastante subjetivo sobre lo que realmente están haciendo sus consultas. Probablemente deberías echarle un vistazo al Optimizing MERGE Statement Performance en MSDN.

1

Technet tiene alguna información en Optimizing MERGE Statement Performance. Básicamente, dice que el rendimiento es mejor que hacer los controles individuales, ya que solo se requiere un pase sobre los datos. Sin embargo, los índices, etc., por supuesto, siguen siendo importantes.

0

Utilizamos recientemente este enunciado Merge en un gran proyecto de Data Warehouse y encontramos un buen rendimiento así como también fácil de implementar. Creemos que la declaración de Merge es muy útil para el desarrollo.

ganas de discutir

gracias prav

Cuestiones relacionadas