SQL Server 데이터 도구 및 파티션 기능


16

슬라이딩 창 로딩 시나리오를 작성 중이며 파티션 기능이 시간이 지남에 따라 경계를 변경합니다.

SSDT (SQL Server Data Tools) 데이터베이스 프로젝트에서 일부 초기 경계를 하드 코드 한 일부 파티션 함수를 만들었습니다.

그러나 시간이 지남에 따라 파티션 기능의 경계가 변경되면 향후 SSDT 데이터베이스 게시에서 경계를 원래 경계로 되돌릴 것입니다.

파티션 기능의 게시를 비활성화하여이 시나리오를 정상적으로 처리 할 수있는 방법이 있습니까?

나는 변화 시도했습니다 빌드 작업 기본값에서, SSDT에서 파티션 기능의 특성 Build에, None하지만, 다음 프로젝트 때문에 따라 객체에서 누락 된 참조에 빌드에 실패합니다.


4
나는 diff 기반 배포가 근본적으로 손상되었다고 항상 말했다. 마이그레이션 은 매우 뛰어난 배포 비유입니다 !
Remus Rusanu

'무시 인덱스 옵션' 파티션 된 인덱스를 배포가 트리거 될 때마다 재 구축 SSDT을 방지하기 위해도 설정해야합니다.

답변:


16

내 문제에 대한 해결책을 찾을 수있었습니다. 이것이 다른 사람에게 도움이되기를 바랍니다.

각 데이터베이스 게시에서 파티션 기능을 다시 만들지 않도록 고급 게시 설정 대화 상자 ( 데이터베이스 게시 대화 상자의 고급 ... 단추)에서 파티션 구성표 무시 옵션을 확인할 수 있습니다 .

옵션 설명 (강조 광산)에서 :

데이터베이스에 공개 할 때 파티션 구성표 와 함수의 차이점을 무시하거나 업데이트 해야하는지 여부를 지정합니다 .

그러나 페이지 또는 행 압축으로 파티션 된 오브젝트 (테이블 또는 인덱스)를 정의한 경우 파티션 구성표 무시 옵션이 더 이상 파티션 기능을 다시 작성하지 않더라도 파티션 된 오브젝트는 다시 작성됩니다.

파티션 된 오브젝트가 파티션 정의 된 압축으로 스크립팅되고 오브젝트가 원래 정의 된 것과 다른 수의 파티션을 가지고 있기 때문에 SSDT는 공개시 오브젝트를 다시 작성합니다. 예 : 형식화 됨 :

WITH ( DATA_COMPRESSION = PAGE ON PARTITIONS (1)
     , DATA_COMPRESSION = PAGE ON PARTITIONS (2)
     , ...

이 문제가 발생하지 않도록 동일한 고급 게시 설정 대화 상자 에서 테이블 옵션 무시 옵션을 확인할 수도 있습니다. 및 ( 테이블 옵션 참조) 와 같은 다른 옵션은 무시한다는 점을 명심하십시오 .ALLOW_ROW_LOCKSALLOW_PAGE_LOCKS

고급 제작 설정 대화 상자


1
구글이 여기로 나를 인도했다. 멋진 정보, 공유해 주셔서 감사합니다.
jamiet

프로젝트 속성-> 디버그 페이지에서 비슷한 대화 상자를 사용하는 경우 변경 사항은 .sqlproj.user 파일에 저장되지만 프로젝트 언로드시에만 저장됩니다.
Taran

3

좋은 상황이 아닙니다. 내가 아는 한 SSDT는 이것을 지원하지 않습니다. 내가 생각할 수있는 가장 좋은 해결 방법은 배포 전 스크립트를 사용하여 테이블에 경계를 저장 한 다음 배포 후 스크립트의 해당 값을 사용하여 파티션 함수를 변경하는 것입니다.


위의 Gonsalu의 답변을 판단하면 여기에서 내 답변을 무시하십시오.
jamiet
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.