2009-07-01 9 views
0

Supposons que vous avez deux serveurs liés appelés Local et Remote respectivement.Compression de données dans une requête

Existe-t-il une syntaxe qui compresse (et décompresse) les données devant être envoyées du local au distant (ou vice versa).

Par exemple, si je mets à jour ma base de données locale avec les données de ma base de données à distance, je ferais ce qui suit:

INSERT INTO [Local Server].[Local DB Name].dbo.[Table] 
SELECT * 
FROM [Remote Server].[Remote DB Name].dbo.[Table] 

Y at-il une syntaxe que je peux appliquer qui compresse les données envoyées de distance à Local donc réduire les coûts de bande passante et le temps d'exécution impliqués?

Répondre

1

Il n'y a rien construit dans SQL Server.

Une alternative est de l'envoyer dans un fichier, de le compresser, de le transférer et de l'amener de l'autre côté. Il est possible d'automatiser tout cela d'un côté avec des choses comme xp_cmdshell.

+0

Merci pour ça! – super9

1

Vous pouvez utiliser l'utilitaire SQL Server bcp pour copier vos données, les compresser vous-même, puis les transmettre au serveur distant. En outre, le téléchargement dans la base de données est beaucoup plus rapide que l'utilisation des instructions d'insertion.

+0

Combiner ceci avec la recommandation du fichier zip de Cade Roux peut aider - mais seulement si vous parlez sérieusement de gros ensembles de données à copier. Les économies proviendraient de l'utilisation de la consignation d'importation en bloc et de l'absence d'une transaction énorme, avec un impact proportionné sur le fichier journal. –

Questions connexes