질문이 오래되었으며 100 % 맞지 않습니다. 그러나 경험 많은 조언을 듣고 싶습니다.큰 값의 데이터 형식을 별도의 테이블에 저장해야합니까?
SQL Server 2008 R2 사용.
나는 수백만 개의 행을 저장할 테이블이 있습니다. 대부분의 열은 varbinary (max) 열 데이터의 설명 (날짜, 상태, 제목, ..)입니다. 또한 XML 데이터 형식의 2 열이 있습니다. 이 XML은 작으며 자주 질의됩니다. 내가 다른 테이블에 대한 모든 큰 값 유형을 이동하는 경우
MyTable
(
SomeID varchar(20)-- queried most often
Date DateTime -- queried most often
Status VarChar(10) -- queried most often
Title VarChar(50) -- queried most often
-- some more columns here
SomeSmallXML xml -- queried quite often
SomeOtherSmallXML xml -- queried quite often
MyData varbinary(max) -- queried rarely
MyOtherData varbinary(max) -- queried rarely
)
는 : 그래서
- 는 클러스터 된 인덱스의 온라인 인덱싱을 할 수 있습니다. 그러나 그럼 나는 xml 유형을 다른 테이블로 옮겨야합니다. 그들이 자주 자주 묻는 것처럼, 그것은 이 적당하지 않은 것처럼 보입니다. (SomeID 열은 클라이언트 응용 프로그램에서 이오고 있기 때문에 조각화가 예상됩니다. 클러스터 된 색인으로 다른 대리 키를 작성하는 것이 타당하지 않으므로 SomeID는 클러스터 된 색인의 키가됩니다.)
- 은 대용량 데이터를 느린 저장소로 이동할 수 있습니다. 그러나 추측은 과 동일한 테이블 파티셔닝 (저속 파일 그룹의 이전 데이터) + 인덱스 을 빠른 스토리지에서 얻을 수 있습니다.
이 경우 큰 값의 데이터 유형을 다른 테이블로 옮길 이유가별로 없습니다. "sp_tableoption N'MyTable ','행 중 큰 값 유형 ','켜짐 '을 설정하는 이유가 있습니다.
귀하의 조언은 무엇입니까? 그 밖의 무엇을 고려해야합니까?
(http://rusanu.com/2011/08/05/online :
그래서 최종 디자인은 다음과 같이 약 보인다 -index-operations-for-indexes-containing-lob-columns /) –
예,하지만 2008 R2를 사용하고 있습니다. [추신 : 귀하의 블로그에서 그것을 보았다 :)] –