2013-08-31 5 views
8

Я использую следующую команду для выполнения sqlpackage для экспорта bacpac для локального db.Экспорт SqlDatabase в Bacpac с использованием SqlPackage.exe не работает на fillfactor

"C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DAC \ Bin \ sqlpackage.exe"/действие: Экспорт /tf:".\dbname_Baseline.bacpac»/ SourceConnectionString: "XXXXXXXXXXXX"

Не получается сказать «Основной ключ элемента: [dbo]. [PK_Name] имеет неподдерживаемое свойство FillFactor и не поддерживается при использовании как часть пакета данных».

Я понимаю, что fillfactor не поддерживается, но есть ли что-нибудь, чтобы игнорировать неподдерживаемые свойства?

Благодаря

Все

+0

Попробуйте обновить пакеты DacFx и SMO ​​с помощью [nuget] (https://www.nuget.org/packages) или установить новейшие [SSMS] (https://msdn.microsoft.com/en-us/library /mt238290.aspx). Это должно обновить необходимые DLL для I/E в вашем GAC. – Pio

ответ

1

Пропустите переключатель

/p:IgnoreFillFactor ={ True | False } 
+1

Привет, я получаю «IgnoreFillFactor» не является допустимым аргументом для действия «Экспорт». когда я пытаюсь поместить этот аргумент в свою командную строку. –

+0

Это выглядит как параметр для/action: Опубликовать вместо/action: Export. (получение db для sql azure - это весело, не так ли?) –

1

Я экспериментировал с экспортом в BacPac за небольшую базу данных около 1 Гб, и вы можете перенастроить коэффициент заполнения в базе данных. В SQL Server Manager Studio просто создайте сценарий «drop and re-create» для индекса, отредактируйте сгенерированный скрипт, чтобы удалить спецификацию fillfactor, запустите скрипт, и это заново создаст индекс с коэффициентом заполнения по умолчанию, приемлемым для sqlpackage.exe , Это должно работать как для ПК, так и для индексов, оно должно быть быстрым для небольших баз данных и не должно отрицательно сказываться на базе данных.

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

+0

Это допустимое решение для небольших баз данных. Однако у нас есть большая база данных с 270 + проблемными индексами! Должно быть лучшее решение этого! –

+0

Чтобы расширить мой ответ, вы также можете изменить fillfactor с помощью команды ALTER INDEX REBUILD, вам не нужно использовать графический интерфейс SQL Server Manager Studio. Вы можете написать сценарий для восстановления индексов один за другим с требуемым коэффициентом заполнения, и вы можете запускать изменения в течение определенного периода времени. После того, как индекс перестроен с необходимым заполняющим фактором, его не нужно снова перестраивать. Также я считаю, что версия SQL Server Enterprise позволяет выполнять ALTER INDEX REBUILD в режиме онлайн, что должно сократить время простоя. – Ubercoder

 Смежные вопросы

  • Нет связанных вопросов^_^