Optimizar el rendimiento de la importación masiva

Actualizado: 12 de diciembre de 2006

En este tema se describen las opciones existentes para optimizar la importación masiva de datos a una tabla de Microsoft SQL Server 2005 mediante un comando bcp, una instrucción BULK INSERT o INSERT ... SELECT * FROM OPENROWSET(BULK...). Para realizar una importación o exportación masiva de datos lo más rápido posible es importante comprender los factores que afectan el rendimiento y los calificadores de comandos disponibles para administrar el rendimiento. Si es posible, utilice una instrucción Transact-SQL para efectuar una importación masiva de datos a SQL Server puesto que Transact-SQL es más rápido que el comando bcp.

[!NOTA] Si desea conocer una comparación de los métodos, vea Acerca de las operaciones de importación y exportación masivas.

El método que permite obtener el mejor rendimiento de una operación de importación masiva específica viene determinado por los siguientes factores:

  • Si la tabla incluye restricciones o desencadenadores, o ambos.
  • El modelo de recuperación que utiliza la base de datos.
    Para obtener más información, vea Información general de los modelos de recuperación.
  • Si la tabla a la que se van a copiar los datos está vacía.
  • Si la tabla incluye índices.
  • Si se ha especificado la opción TABLOCK.
  • Si la tabla se copia desde un único cliente o en paralelo desde varios clientes.
  • Si la tabla se va a copiar entre dos equipos en los que se ejecute SQL Server.
ms190421.note(es-es,SQL.90).gifImportante:
En SQL Server 2005, las optimizaciones de importaciones masivas están disponibles cuando se habilitan los desencadenadores. SQL Server 2005 utiliza el control de versiones de fila para los desencadenadores y almacena las versiones de filas en el almacén de versiones en tempdb. Antes de poder importar de forma masiva un gran lote de registros de datos usando desencadenadores, puede tener que ampliar el tamaño de tempdb para que quepan los desencadenadores en el almacén de versiones.

Para obtener información acerca de la incidencia de estos factores en los escenarios de importación masiva, vea Directrices para optimizar la importación masiva.

Métodos para optimizar la importación masiva

SQL Server incluye los siguientes métodos para agilizar la importación masiva de datos:

  • Usar un registro mínimo
    El modelo de recuperación simple registra de forma mínima la mayoría de las operaciones masivas.
    En el caso de las bases de datos que utilizan el modelo de recuperación completo, todas las operaciones de inserción de filas que se efectúan durante la importación masiva se registran por completo en el registro de transacciones. Cuando la importación es de un gran volumen de datos, esto puede causar que el registro de transacciones se llene rápidamente. Para operaciones de importaciones masivas, el registro mínimo resulta mucho más eficaz que el registro completo y reduce la posibilidad de que una operación de importación masiva ocupe todo el espacio del registro. Para registrar de forma mínima una operación de importación masiva en una base de datos que suele utilizar el modelo de recuperación completa, puede cambiar primero la base de datos al modelo de recuperación por medio de registros de operaciones masivas. Después de importar los datos de forma masiva, cambie el modelo de recuperación al modelo de recuperación completa. Para obtener más información, vea Consideraciones para cambiar del modelo de recuperación completa al modelo de recuperación por medio de registros de operaciones masivas.

    [!NOTA] Las filas insertadas se registran mínimamente si los registros de operaciones masivas optimizados son aplicables; de lo contrario, las filas insertadas se registran completamente en el registro de transacciones. Para obtener información acerca de cuándo se registran las operaciones de importación masiva y cómo realizar un registro mínimo de este tipo de operaciones, vea Operaciones registradas mínimamente y Requisitos previos para el registro mínimo durante la importación masiva.

  • Importar datos en paralelo desde varios clientes a una única tabla
    SQL Server permite importar los datos de forma masiva a una sola tabla desde varios clientes en paralelo. Los tres mecanismos de importación masiva admiten la importación de datos en paralelo. Esto puede mejorar el rendimiento de las operaciones de importación de datos.
    Para obtener más información, vea Importar datos en paralelo con bloqueo de tabla.

  • Usar lotes
    Para obtener información acerca del uso de lotes para importar datos y acerca de los calificadores de comando para administrarlos, vea Administrar lotes para la importación masiva.

    [!NOTA] La opción BULK de la cláusula OPENROWSET no admite el control del tamaño del lote.

  • Deshabilitar los desencadenadores
    Deshabilitar los desencadenadores puede mejorar el rendimiento.
    Para obtener información acerca del impacto de la ejecución de los desencadenadores en las operaciones de importación masiva y de cómo habilitarlos o deshabilitarlos, vea Controlar la ejecución de desencadenadores al importar datos masivamente.

  • Deshabilitar las restricciones
    Para obtener más información sobre el impacto de la comprobación de restricciones en las operaciones de importación masiva y sobre cómo habilitar o deshabilitar las restricciones CHECK y FOREIGN KEY de una tabla, vea Controlar comprobación de restricciones mediante operaciones de importación masiva.

  • Ordenar los datos de un archivo de datos
    De manera predeterminada, en las operaciones de importación masiva se supone que los archivos de datos no están ordenados. Si la tabla tiene un índice agrupado, bcp y la instrucción BULK INSERT permiten especificar la ordenación de los datos del archivo durante una operación de importación masiva. El hecho de aplicar el mismo orden a los datos del archivo de datos que a los de la tabla es opcional. Sin embargo, se puede mejorar el rendimiento de la operación de importación masiva si se especifica el mismo orden en el archivo de datos que en la tabla.
    Para obtener más información, vea Controlar el criterio de ordenación en las importaciones masivas de datos.

    [!NOTA] Las instrucciones INSERT ... SELECT * FROM OPENROWSET(BULK...) no admiten el control del criterio de ordenación.

  • Controlar el comportamiento de bloqueo
    Para obtener información acerca de cómo especificar el comportamiento de bloqueo durante las operaciones de importación masiva, vea Controlar el comportamiento de bloqueo para la importación masiva.

  • Importar datos en formato nativo
    Para obtener más información, vea Usar el formato nativo para importar o exportar datos y Usar el formato nativo Unicode para importar o exportar datos.

Vea también

Referencia

Databases (objeto de SQL Server)

Conceptos

Importar y exportar datos masivos

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

12 de diciembre de 2006

Contenido modificado:
  • Se actualizó la explicación de deshabilitar restricciones para indicar que las restricciones CHECK y FOREIGN KEY se habilitan o deshabilitan juntas.