2010-11-29 5 views
0

80.000 행의 테이블이 있습니다. 매일 난 당신이 계산, 데이터 2400 000 행 매월 될 것입니다 .. 20101129_TABLE 같은 이름을주고 다른 로그 테이블 및 접두사가 날짜에 따라 변경 될 것입니다 매일에테이블 보관 : 가장 좋은 방법 검색

를이 테이블을 복제해야합니다 ..

공간 절약과 빠른 서비스 및 기타 장점과 단점에 대한 조언 부탁드립니다 !! 어떻게하면 최고의 아카이브 또는 로그를 생성해야한다고 생각합니까?

테이블에 계정 정보가 있습니다. 지점 코드 밸런스 등 당신이 몇 가지 중요한 사실에 조금 애매하기 때문에 귀하의 질문에 대답하는 것은 매우 까다 롭습니다

답변

1

:

  • 가 얼마나 자주 보관 된 테이블이 필요합니까?
  • 디자인 선택의 자유는 얼마나됩니까?

아카이브 된 데이터가 자주 필요하지 않고 desgin에서 무료 인 경우 데이터를 아카이브 데이터베이스에 복사합니다. 그러면 별도의 디스크에 데이터베이스를 저장하는 옵션 (비용 효율성)을 얻을 수있을뿐만 아니라 해당 데이터베이스에서도 별도의 백업 일정을 가질 수 있습니다.

ArchiveDate datetime과 같은 추가 열만으로 모든 데이터를 하나의 테이블에 저장할 수도 있습니다. 그러나 이것은 나중에 데이터에 액세스하는 방법에 달려 있다고 생각합니다.

+0

+1 날짜 열을 추가하라는 제안입니다. – Randy

+0

아니, 그건 끔찍한 제안이야! 몇 달 후, 데이터베이스를 사용할 수 없게되고, 수백만 개의 아카이브 레코드를 파고 들기 만하면 현재의 디자인을 얻지 못합니다 (너무 많은 인덱스 트리 레벨) –

+0

(주석을 편집 할 수 없습니까? 이상) 테이블 파티셔닝을 사용하지 않으면 성능이 좋지 않습니다. –

0

테이블 분할 (MSDN) - 이는 이러한 종류의 시나리오에 맞게 설계되었습니다. 파티션간에 데이터를 분산시킬 수있을뿐만 아니라 모든 테이블의 데이터를 동일한 테이블에 보관할 수있을뿐만 아니라 MSSQL이 백그라운드에서 모든 작업을 수행 할 수 있습니다 (선택 기준 등에 따라 사용할 파티션) .