2017-01-01 4 views
1

Я использую VS2015 для создания моего проекта базы данных в режиме выпуска, а затем скопируйте сгенерированный файл .dacpac на мой производственный сервер.sqlpackage.exe действительно медленно развертывает небольшую базу данных

Я затем запустить команду следующим образом:

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

Размер dacpac составляет около 8KB. Он содержит, возможно, 10 таблиц и некоторые статические данные.

Затем я запускаю команду, для ее выполнения требуется очень много времени. Как для создания исходной базы данных, так и для любых обновлений. Я оцениваю эту небольшую базу данных, выполнение указанной выше команды занимает около 5 минут.

Есть ли способ, которым я могу улучшить скорость этого вообще?

Конечно, во время развертывания в моем приложении, где я буду делать небольшие изменения и развертывание, эта временная задержка станет настоящим препятствием.

+0

Почему? Зачем использовать этот метод вообще? Разумеется, существующий метод установки SQL Server достаточно хорош. –

+0

@clifton_h это не об установке SQL Server. Речь идет о публикации проекта базы данных. –

+0

Используете ли вы последнюю версию SqlPackage.exe? Он доступен здесь: https://www.microsoft.com/en-us/download/details.aspx?id=54106 Также, какие еще объекты находятся в вашем проекте базы данных? Есть ли какие-либо сборки SQLCLR, случайно? –

ответ

0

Когда я закончил свой конвейер развертывания и начал запускать SqlPackage как часть моего кода AWS Deploy, он по какой-то причине работает намного быстрее.

Это должно быть связано с запуском его в командной строке, однако это в настоящее время необъяснимо.