Servidor vinculado MSSQL. Rendimiento optimizado 30 veces

Datos iniciales :





  1. Dos servidores SQL, que tienen accesibilidad directa entre sí, uno de los cuales está configurado con el servidor vinculado.





  2. 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"

Formulario principal de ImportExportDataSql
Formulario principal de ImportExportDataSql

( CSV Excel) ( CSV). bcp, . "bcp", , .





ImportExportDataSql , . :





ImportExportDataSql :
ImportExportDataSql.exe -ConnectionName="   " -TaskName="  1" -TaskName="  2" [-Log="C:\FolderName\LogFileName.log"]
      
      



:





-ConnectionName - , " " " "





Guarde la configuración de conexión de la base de datos

-TaskName -





-Log - . . -, Logs\UserName\ImportExportDataSql.log





ImportExportDataSql

  1. -





  2. ( bcp) - bcp ( bat )





  3. - varbinary





  4. SQL - SELECT SQL





  5. SQL ( INSERT)





  6. SQL ( UPDATE)





  7. SQL





  8. Excel SQL





  9. CSV





  10. CSV SQL





  11. CSV





  12. SQL - SQL





  13. - SELECT





, SQL , . (, ).





Guardar de DB a DB

( ) Linked Server, 1 2 . C# System.Data.SqlClient: SqlConnection, SqlDataReader, SqlCommand SqlBulkCopy.





OutOfMemoryException, (). , . , :





  1. SQL - ,





  2. :





    - , " ", . (.) " " , .





    - . , ( , )





    - , . , 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.





ImportExportDataSql





ImportExportDataSql





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








All Articles