2011-12-30 10 views
3

私はデータウェアハウスを構築しています。私は、さまざまなソースからデータを取得し、レポートを生成できるようにまとめておく必要があります。私はたくさんのテーブルに参加します。私は多分20テーブルの合計と各テーブルは100メガバイトから5ギガのどこかに行くつもりについて話している。テーブルを複数のデータベースに分割する場合

各テーブルが全く異なるタイプのデータセットを持つ可能性があるので、各テーブルごとに異なるデータベースを作成する必要があるかどうかを知りたいと思います。

たとえば、車の設計に関する1 GBのデータを持つテーブルが1つあります。そして、私はこれらの車に3GBの売上データを持つ別のテーブルを用意します。

これらを別々のデータベースに分けることは適切でしょうか?

この状況について私に助言するために必要な追加情報をお知らせください。

+0

生産データを倉庫に複製する予定ですか? – UnhandledExcepSean

答えて

6

論理的または業務上の分離がある場合は、必ずそれらを別のデータベースに配置します。それはクリーンなデータアプリケーションの開発です。ただし、異なるデータセットに結合または結合する場合は、単一のデータベースを使用することによって、オーバーヘッドおよび管理コストを節約できます。 20テーブルの合計はあまりありません(私は約3700テーブルを持つシステムで作業していますが、〜1600は監査です)。 SQL Serverは、適切なモデル、インデックスなどを備えていれば、テラバイトのデータまでスケールアップすることを意図しています。

倉庫のパフォーマンスに関心がある場合は、 RAMとハードドライブ。ハードドライブを適切に活用するには、複数のファイル/ファイルグループを活用し、テーブルを適切に整理することが必要です。

+3

+1ジャムのために:) – cairnz

+1

私はどのようにロックモンス! – jklemmack

+0

@ssyladinありがとう!あなたがhttp://stackoverflow.com/questions/8685034/sql-server-2008-importing-5-gig-file-into-tableを助けることができるかどうか疑問に思っていた –

3

これらのテーブル間に外部キーの関係があることを計画している場合は、そのデータベースをすべて1つのデータベースに保持します。通常、私はデータ本体を完全に分離するために別々のデータベースを使用します。

これらを分離すると、両方を同時に照会しようとするときにいくつかの面白い問題が発生します。

+0

ありがとう! IOボトルネックについて言えば、http://stackoverflow.com/questions/8685034/sql-server-2008-importing-5-gig-file-into-table –

5

通常、異なるデータベースに分割すると、I/O負荷が分散されます。 SQL Serverでは、複数のディスクグループ/ディスクにI/Oを分散する場合、データベース内に異なるファイルグループを持つことができます。倉庫保管シナリオでは、データベースストレージ用のSANソリューションを扱うことが多く、シナリオによっては、パフォーマンスが賢明に左右されることはありませんが、適切に計画されていれば追加のパフォーマンスが得られる場合もあります。

また、あなたの成長するデータベースを見ることができるテーブルパーティショニングがありますが、私の意見では、古いメモリが十分にあることを確認するだけで、データベースとファイル。

私たちは単一のデータベースファイルで100ギガバイトのデータベースを実行しており、パフォーマンスは恒星です。頻繁にアクセスするデータの多くはメモリに格納されていますが、まともなテーブル構造と論理インデックスを使用すると、すぐに応答性の高い倉庫ができます。

+0

+1でお手伝いできるかどうか疑問に思っていました。データベースを分離することで、特にデータセット間にJOINが必要ないため、後で管理することが容易になります。 – believesInSanta

関連する問題