2014-04-15 7 views
1

최대 수십억 개의 순차 데이터를 저장하기위한 스키마를 설정하고 데이터가 삽입되면 스키마를 읽고 싶습니다. 미래의 쿼리에서. 필자는 스키마를 설정하고 아래에서 다른 것보다 어느 것이 더 나은지 궁금하거나 두 가지 옵션을 생각해 볼 수있는 두 가지 옵션이 있습니다. 1 10 억 개의 행을 가진 1 개의 테이블과 1 백만 개의 행을 가진 1000 개의 테이블

옵션 1.

는 데이터 행 수십억을 보유하는 대규모 테이블을 만듭니다. 스키마를 정적으로 유지하면서 성능을 단순하게 유지하기 때문에 성능 저하는 확실하지 않기 때문에이 기능을 좋아합니다. 이 경우 2.

옵션 I 주식에 대한 과거 시장 데이터를 저장하고있어 각각의 재고가 DB 시스템에 여러 테이블에서 데이터의 대량 확산을위한 두 번째 옵션은 테이블을 생성 할 것입니다. 이것은 더 영구적 인 것처럼 느껴지지만 장래에 데이터 세트에 새 열을 추가하려는 경우 다운면이 혼란 스럽습니다.

처음으로이 글을 쓸 수있는 창고 애호가를 찾고 있습니다! - Duncan

+5

나 인 경우 하나의 테이블이 분할 된 것으로 간주합니다. – HLGEM

+0

분할 기록은 히스토리 아카이브 테이블과 함 2 g 용합니다. 예를 들어 1980 년 이후로 데이터를 사용하는 경우 매년 월별로 테이블을 만들 수 있습니다. – Kermit

+2

HLGEM, 하나의 테이블이 분할 된 것에 동의합니다. 초대형 데이터베이스 (VLDB)를 다룰 때는 특별한 고려 사항이 있습니다. 연구하고 자신을 준비하십시오. 여기에 한 기사가 있습니다 : http://www.toadworld.com/platforms/sql-server/w/wiki/9453.very-large-databases-vldbs.aspx –

답변

1

하나의 테이블이지만 더 쉬운 유지 관리를 위해 파티션이 나뉘어 있습니다. 성능에 관한 한 적절한 인덱스를 만들고 성능을 향상시키기 위해 파티셔닝에 의존하지 마십시오 (어떤 경우에는 달성 될 수 있지만 그렇게 단순하지는 않습니다).

+0

감사합니다, 당신의 답변과 의견을 분할 된 테이블에 내가 가고 싶은 경로입니다. –

2

SQL Server에서는 Partitioned Views을 만들고 데이터를 작은 테이블로 나누어 날짜별로 작성하려고합니다. 결국 성능이 훨씬 좋아질 것입니다. 또한 다른 파일 그룹에 테이블을 설정하는 데 도움이됩니다.이 테이블은 많은 양의 데이터에 대한 백업 전략에 유용합니다.

관련 문제