2013-08-31 3 views
8

다음 명령을 사용하여 sqlpackage를 실행하여 로컬 db에 대한 bacpac을 내 보냅니다.SqlPackage.exe를 사용하여 SqlPackage.exe를 사용하여 SqlDatabase를 fillfactor에서 실행하지 못했습니다.

"C : \ Program 파일 (x 86) \ Microsoft SQL Server를 \ 110 \ DAC \ 빈 \의 sqlpackage.exe"/ 액션 수출 /tf:".\dbname_Baseline.bacpac "/ SourceConnectionString"XXXXXXXXXXXX "

"요소 기본 키 : [dbo]. [PK_Name]에 지원되지 않는 속성 인 FillFactor가 설정되어 있고 데이터 패키지의 일부로 사용될 때 지원되지 않습니다."라는 메시지가 나타나지 않습니다.

fillfactor가 지원되지 않지만 지원되지 않는 속성을 무시하도록 만드는 항목이 있습니까?

감사

마크

+0

[nuget] (https://www.nuget.org/packages)에서 DacFx 및 SMO 패키지를 업데이트하거나 최신 [SSMS] (https://msdn.microsoft.com/en-us/library)를 설치하십시오. /mt238290.aspx). 그게 당신의 GAC에서 I/E에 필요한 DLL을 업데이 트해야합니다. – Pio

답변

1

1GB의 주위의 작은 데이터베이스 bacpac 수출과 스위치

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

안녕하세요, 'IgnoreFillFactor'가 '내보내기'작업에 유효한 인수가 아닙니다. 이 명령을 내 커맨드 라인에 넣으려고 할 때. –

+0

이것은/action : Publish 대신/action : Export의 매개 변수처럼 보입니다. (데이터베이스를 SQL Azure에 준비시키는 것이 재미 있지 않습니까?) –

1

내가 실험 한을 전달하고 당신은 데이터베이스에 FILLFACTOR를 다시 구성 할 수 있습니다. SQL Server Manager Studio에서 인덱스에 대해 '놓기 및 다시 만들기'를 스크립팅하고 생성 된 스크립트를 편집하여 fillfactor 사양을 제거하고 스크립트를 실행하면 sqlpackage.exe에 허용되는 기본 채우기 비율로 인덱스가 다시 생성됩니다. . 이것은 PKs뿐만 아니라 인덱스에서도 작동해야합니다. 작은 데이터베이스에서는 빠르며 데이터베이스에 나쁜 영향을주지 않아야합니다.

나는 이것이 sqlpackage.exe가 일부 오류를 무시하게 만드는 것에 대한 질문에 답하지 못한다는 것을 알고 있지만 아마도 데이터베이스에 직접있는 것처럼 문제를 해결하는 더 좋은 방법 일 것입니다.

+0

이것은 작은 데이터베이스에 유효한 솔루션입니다. 그러나 270 개 이상의 문제 인덱스가있는 대규모 데이터베이스가 있습니다! 이것에 더 좋은 해결책이 있어야합니다! –

+0

대답을 확장하려면 ALTER INDEX REBUILD 명령을 사용하여 fillfactor를 변경할 수도 있지만 SQL Server Manager Studio GUI를 사용할 필요는 없습니다. 필요한 채우기 비율을 사용하여 인덱스를 하나씩 다시 작성하는 스크립트를 작성할 수 있으며 일정 기간 동안 변경 사항을 실행할 수 있습니다. 인덱스가 필요한 fillfactor로 다시 작성되면 다시 빌드 할 필요가 없습니다. 또한 SQL Server Enterprise Edition을 사용하면 ALTER INDEX REBUILD를 온라인으로 실행할 수 있으므로 다운 타임을 줄여야합니다. – Ubercoder