2017-01-01 4 views
1

J'utilise VS2015 pour générer mon projet de base de données en mode édition, puis copiez le fichier .dacpac généré sur mon serveur de production.sqlpackage.exe très lent à déployer une petite base de données

Je suis en cours d'exécution alors une commande comme suit:

sqlpackage.exe /action:publish /targetconnectionstring:"Data Source=localhost;Integrated Security=True;Initial Catalog=NorthwindDb" /sourcefile:"c:\temp\NorthwindDb.dacpac" /p:CreateNewDatabase=false 

La taille de dacpac est d'environ 8 Ko. Il contient peut-être 10 tables et des données statiques.

Ensuite, je lance la commande, il faut vraiment beaucoup de temps pour l'exécuter. Les deux pour créer la base de données initiale et pour toutes les mises à niveau. J'estime pour cette petite base de données, l'exécution de la commande ci-dessus prend environ 5 minutes.

Y at-il un moyen que je peux améliorer la vitesse de tout cela? Certes, lors du déploiement initial de mon application où je vais faire de petits changements et déployer, ce délai deviendra un véritable obstacle.

+0

Pourquoi? Pourquoi utiliser cette méthode? Sûrement la méthode existante pour installer SQL Server est assez bonne. –

+0

@clifton_h Il ne s'agit pas d'installer SQL Server. Il s'agit de publier un projet de base de données. –

+0

Utilisez-vous la dernière version de SqlPackage.exe? Il est disponible ici: https://www.microsoft.com/en-us/download/details.aspx?id=54106 En outre, quels autres objets sont dans votre projet de base de données? Y a-t-il des assemblages SQLCLR, par hasard? –

Répondre

0

Lorsque j'ai terminé mon pipeline de déploiement et commencé à exécuter SqlPackage dans le cadre de mes scripts AWS Code Deploy, il s'exécute beaucoup plus rapidement (pour une raison quelconque).

Cela doit être quelque chose à voir avec l'exécution sur l'invite de commande, mais qui est à ce moment inexpliquée.