2008-11-24 6 views
6

J'ai une assez grande (plusieurs gigaoctets) table de données dans SQL Server que je souhaite déplacer vers une table dans une autre base de données sur le même serveur.Déplacement efficace de grands ensembles de données entre des tables SQL Server?

Les tableaux ont la même disposition.

Quelle serait la manière la plus efficace de faire cela?

Il s'agit d'une opération unique, donc aucune automatisation n'est requise.

Merci beaucoup.

Répondre

6

Si c'est une opération unique, pourquoi se soucier de top efficacité autant?

SELECT * INTO OtherDatabase..NewTable FROM ThisDatabase..OldTable 

ou

INSERT OtherDatabase..NewTable 
SELECT * FROM ThisDatabase..OldTable 

... et laissez-le tourner pendant la nuit. J'oserais dire que l'utilisation de SELECT/INSERT INTO sur le même serveur n'est pas loin de la meilleure efficacité que l'on puisse obtenir de toute façon.

+1

Vous définissez un point valide. Je suppose que je suis juste trop programmé pour faire les choses de la «bonne façon». La requête est en cours d'exécution lorsque je tape! – Martin

+1

considérez le BULK INSERT à la place de l'insert. Voir http://msdn.microsoft.com/en-us/library/ms188365.aspx –

+0

Terminé et seulement pris 26 minutes. Merci. – Martin

2

Vous pouvez également utiliser l'Assistant Importation et Exportation SQL situé sous "Gestion" dans Microsoft SQL Server Management Studio.

2

J'irais avec la réponse de Tomalak.

Vous pouvez mettre temporairement votre base de données cible en mode de récupération enregistré en bloc avant d'exécuter un « select into » pour arrêter le fichier journal exploser ...

1

Si c'est SQL Server 7 ou 2000 regard sur la transformation des données Services (DTS). Pour SQL 2005 et 2008, consultez SQL Server Integration Services (SSIS)

1

Mettez définitivement la base de données cible en mode groupé. Cela minimisera l'opération et l'accélérera.

Questions connexes