4

여러 데이터 샘플, 즉 N을 사용해야합니다. 샘플은 유사한 데이터를 나타내지 만 다른 출처를 나타냅니다. 예를 들어, 다른 상점에서의 주문 내역. 따라서 모든 샘플의 구조는 동일합니다. 동일한 스키마더 나은 점은 많은 유사한 데이터베이스 또는 유사한 테이블을 가진 데이터베이스 하나 또는 하나의 테이블을 가진 하나의 데이터베이스를 갖는 것입니다.

  1. 사용 N 데이터베이스, 각 샘플

  2. 하나를 사용하여 데이터베이스에 대한 하나지만, 테이블 N 세트 : 데이터와 함께 작동하기 위해 나는 몇 가지 가능성이있다. 예를 들어, User_1, ..., User_N; Product_1, ..., Product_N, Order_1, ..., Order_N 등이 있습니다.

  3. 하나의 데이터베이스를 User, Product, Order 테이블 집합과 함께 사용하지만 샘플 인덱스를 나타내는 도우미 열을 각 테이블에 추가하십시오. 분명히이 열은 색인이어야합니다.

마지막 변형은 모든 쿼리가 단순 해지기 때문에 사용하기에 가장 편리한 것으로 보입니다. 두 번째 경우에는 매개 변수로 쿼리 (저장 프로 시저)에 테이블 이름을 보내야합니다 (가능합니까?).

그래서 어떤 방법으로 조언 하시겠습니까? 성능은 매우 중요합니다.

답변

5

1 단계. 데이터웨어 하우징에 대한 책을 얻으십시오.

2 단계 분할하여 (등 $의 같은 측정 가능한 것들, 무게,) 사실에 데이터 및 치수

단계 (제품 이름, 주문 번호, 사용자 이름 등 같은 비 측정 가능한 특성) 3. 사실의 차원으로 둘러싸인 사실 테이블 (예 : 주. 항목)을 빌드하십시오. 주문 항목의 제품, 주문 항목의 고객, 주문 항목의 주문 번호, 주문 항목의 날짜 등. 이것은 하나의 사실 테이블 및 단일 데이터베이스의 여러 차원 테이블이됩니다. 각 "원산지"또는 "원천"은 기본적인 사실의 차원에 불과합니다.

단계 4. 매우 간단한 "SELECT SUM() GROUP BY"쿼리를 사용하여 데이터를 요약하고 분석하십시오.

이것은 비즈니스를 수행하는 데있어 가장 성능이 뛰어나고 확장 가능한 방식입니다. 자세한 내용은 Ralph Kimball의 Data Warehouse Toolkit 서적을 구입하십시오.

동일한 구조의 N 데이터베이스를 빌드하지 마십시오. 하나는 TEST 용으로, 하나는 PRODUCTION 용으로 빌드하고 N을 빌드하지 마십시오.

동일한 구조의 N 테이블을 빌드하지 마십시오. 그것이 바로 열쇠입니다.

+0

2 단계 및 3 : 솔루션의 종류를 제공 상업 당사자도 있습니다. –

1

데이터베이스를 분리하면 더 작은 테이블을 사용할 수 있습니다. 그게 보통 더 효과적입니다. 다른 데이터베이스로 이동해야하는 경우 Microsoft SQL Server에서 가능합니다. 다른 서버의 데이터베이스로 이동해야하는 경우에도 가능합니다.

데이터가 얼마나 강하게 상관되는지에 따라 달라집니다.

+0

다른 샘플의 데이터 간에는 아무런 의존성이 없습니다. 각 샘플은 다른 샘플과 독립적입니다. ... 100 개의 데이터베이스가 있다면 어떨까요? 괜찮나요? – flashnik

+0

이것은 서버의 RAM 용량, 서버 수, 각 데이터베이스에 액세스하는 사용자 수, 초당 읽기/쓰기 수, 사용 가능한 대역폭의 양에 따라 다릅니다. 몇 가지 데이터베이스를 제안하면 샘플 당 수백 메가 바이트의 데이터가 있음을 이미 짐작하고 있습니다. 각 샘플이 50-100 meg의 데이터베이스 공간 만 사용하는 경우 하나의 데이터베이스를 고수하고 언급 한대로 각 샘플에 ID가있는 테이블을 추가하기 만하면됩니다. – Trevoke

2

다음은 한 예입니다. 이 예에서 사실 테이블의 각 행에는 주.의 한 행 항목이 있습니다. OrderID 필드는 특정 주문의 모든 항목을 찾는 데 사용할 수 있습니다.

sales_model_03

+1

+1 다이어그램에서 위로 올라갑니다. –

관련 문제