2009-06-22 11 views
2

私は巨大なデータベースを持っているプロジェクトに取り組んでいます。 [1週間で約32GBのデータ]。私たちはDB2とspring-framework + jdbcを使用しています。私はちょうどこのJDBCの多くのデータを処理できることを知りたがっていますか?それとも別のものを使うべきですか?または、JDBCがこれを行うことができる場合、私はこのためにいくつかの特定のテクニックを使用する必要があります。JDBCは巨大なデータベースを処理できますか?

答えて

9

JDBCは接続に過ぎません。データベース内のデータの量には関係ありません。私はそれがどこにいてもデータベース側でもっと問題になると思います。あなたが作成するのに高価なインデックスを持っているなら、あなたはもっと問題を起こす可能性が高いですが、正直言って32GBは1週間ではそれほど大きくありません。私は、「本当の」サーバー側のデータベースがそれをかなり簡単に処理できると期待しています。

私はあなたがあまりにも特定のパスを遠くにコミットする前にそれを試すことをお勧めします。できるだけ早くデータをチャックしてください。数時間で32GBのデータを作成できないと少し気になります。

+0

チャック、おっと、私はJon:Dを意味しています。あなたによれば、これは私だけではなく、これを気にする必要があるDBAです。 –

+0

ほぼ確実です。 JDBCは、データをポンピングするパイプを表します。明らかに、データを処理するために*オーバーヘッドがかかりますが、それは重要ではありません。 –

6

JDBCは、データベースとJavaプログラムの間のインターフェイスです。この量のデータを処理するのはデータベースの責任です。 Javaの世界では、データベース接続に関してJDBCを使用する代わりにほとんど使用できません。

0

すべては、データベース上で実行する処理によって異なります。アクセスするテーブルの数はいつでも増え、データベースからの書き込みまたは読み取りの回数も増えます。これに基づいて設計することができます。また、春によく統合された休止状態のようなORMソリューションを使用して見ることもできます。これは毎回ダイレクトdbアクセスを避けるためにキャッシュのようないくつかのオプションを提供します。また、接続を再利用するために接続プーリングを設定する必要があります。

+0

「いつでもアクセス可能なテーブル数」は、20を超えるテーブルがありません。いつでも、最大6-7のテーブルからフェッチしています。 –

1

SQL APIおよびデータベース抽象化レイヤーは重要ですが、データベースのパフォーマンスおよび保守性に最も大きな影響を与えるのは、DBAが大量のデータを管理するために使用する索引付け、クラスタリングおよびパーティション化のスキームです週間。これらの分野で最も強力な機能は、Linux、UNIX、およびWindows用のDB2データエンジンのエンタープライズ版で利用できます。私は、MDC(Multi-Dimensional Clustering)、レンジ・テーブル・パーティショニング、ディープ・コンプレッションの組み合わせを見て、テーブルが成長するにつれてテーブルを管理し、ロールイン/ロールアウトを容易にし、最も重要なことに、データは最低限のスキャンで要求されます。マテリアライズ照会表(MQT)のメリットもあります。非常に最近リリースされたDB2のバージョン9.7は、これらの機能のいくつか、特に索引のための積極的な圧縮スキームに特筆すべき拡張機能を提供します。

+0

ありがとうFred、実際にデータベースの最適化は私の手にはありません。しかし、はい、私はthtメイトにこれらのことを知らせます –

関連する問題