私は非常に大きなデータセットと関連する参照データを保存する必要があるプロジェクトに取り組んでいます。これほど大きなテーブルを必要とするプロジェクトに出くわしたことはありません。少なくとも1つの開発環境では、データベース層で、アプリケーション層が生成するビューに対する複雑なクエリ(複数の内部結合と外部結合を持つビュー、グループ化、合計、および9000万行のテーブルに対する平均化)に必要な処理に対応できないことを証明しました。 )。
私がテストしたRDBMSは、AIX上のDB2です。失敗した開発環境には、本番環境で処理されるボリュームの1/20がロードされました。本番ハードウェアは開発ハードウェアやステージングハードウェアよりも優れていると確信していますが、膨大な量のデータと複雑なクエリに対応できるとは思いません。
開発環境が失敗する前は、大きなテーブルに対する複雑なクエリ(多くの結合、多くのグループ化、合計、平均化)によって生成された小さなデータセット(数百行)を返すのに5分以上かかりました。
私の直感では、ビューによって現在提供されている集計がオフピークバッチプロセスの一部として実行されるように、dbアーキテクチャを変更する必要があります。
さて、私の質問です。私は、この種のことを経験したと主張する人々(私はそうではありません)によって、私の恐れは根拠がないことを確信しています。彼らは?最新のRDBMS(SQL Server 2008、Oracle、DB2)は、私が説明したボリュームと複雑さに対処できますか(適切な量のハードウェアがあれば)、それともGoogleのBigTableのようなテクノロジーの領域にいますか?
この種のボリュームを非理論的なレベルで実際に処理しなければならなかった人々からの回答を期待しています。
データの性質は金融取引(日付、金額、地理的な場所、ビジネス)であるため、ほとんどすべてのデータタイプが表されます。すべての参照データが正規化されているため、複数の結合が行われます。