Datos iniciales :
Dos servidores SQL, que tienen accesibilidad directa entre sí, uno de los cuales está configurado con el servidor vinculado.
Consulta SQL de la forma:
insert into LocalDatabaseName.dbo.TableName (column1, column2, ..., columnN)
select column1, column2, ..., columnN
from LinkedServerName.RemoteDatabaseName.dbo.TableName
Tarea : copiar registros de un servidor a otro lo más rápido posible
Ante el hecho de que se está ejecutando una consulta similar en 40k (40.000) registros durante más de un minuto Con un aumento en el número de consultas de este tipo o en el número de registros, el rendimiento cae drásticamente y no hay forma de optimizar la consulta utilizando herramientas SQL. Usando la aplicación ImportExportDataSql, pude acelerar esta consulta a 2 segundos sin usar el servidor vinculado.
Creé la aplicación ImportExportDataSql para mí y la perfeccioné constantemente durante varios años. Los principales requisitos para crear una aplicación son la portabilidad, trabajar en todas las versiones de Windows sin instalar bibliotecas de terceros (excepto NET Framework 3.5), una interfaz sencilla y de alto rendimiento.
ImportExportDataSql - convertidor de datos universal, alternativa a "bcp"
( CSV Excel) ( CSV). bcp, . "bcp", , .
ImportExportDataSql , . :
ImportExportDataSql :
ImportExportDataSql.exe -ConnectionName=" " -TaskName=" 1" -TaskName=" 2" [-Log="C:\FolderName\LogFileName.log"]
:
-ConnectionName - , " " " "
-TaskName -
-Log - . . -, Logs\UserName\ImportExportDataSql.log
ImportExportDataSql
-
( bcp) - bcp ( bat )
- varbinary
SQL - SELECT SQL
SQL ( INSERT)
SQL ( UPDATE)
SQL
Excel SQL
CSV
CSV SQL
CSV
SQL - SQL
- SELECT
, SQL , . (, ).
( ) Linked Server, 1 2 . C# System.Data.SqlClient: SqlConnection, SqlDataReader, SqlCommand SqlBulkCopy.
OutOfMemoryException, (). , . , :
SQL - ,
:
- , " ", . (.) " " , .
- . , ( , )
- , . , 100 , " " = 10, 10 .
-
" " , . , , , (insert into ... select ...), , tempdb ( " " ).
ImportExportDataSql
ImportExportDataSql . .
, CSV Excel.
CSV ( 1) , CSV. CSV, .
SQL , , "Messages" SQL Server Management Studio.
" SQL" (jobs), , .
C# SqlBulkCopy , Linked Server.
Artículo "CSV de lectura rápida en C #" que analiza las deficiencias de "bcp"
Comunidad VK , para aquellos que quieran charlar con el autor