1

データベースにクエリを実行し、Excel VBA を使用して後で分析およびレポートするために 600 万件以上のレコードを保存する必要があります。これを行う最良の方法は何ですか?後でデータにアクセスして分析し、分析したデータに関するレポートを生成できるようにする必要があります (システム内のローカルで全データにアクセスでき、高速に処理できる必要があります) データを保存するための MS アクセスの精度レコードの量が数百万になると? Oracle と VBA を一緒に使用した経験はあまりありません。エクセルVBAと併用すると良いのでしょうか?誰かが私を助けるかもしれないいくつかのリンクを与えることができれば感謝します。

注: 私の手に負えない理由により、別の言語を使用する選択肢はありません。私はJavaがかなり得意ですが、使用できません。

4

2 に答える 2

2

Excelで100万行を超えるデータを操作する場合は、Excel 2010のアドインであるPowerPivotを調べる必要があります(Excel 2013に組み込まれています)。各行の計算フィールドに加えて、1億行のデータが許可されますが、これらの計算は、他の人が推奨するSQLバックエンド/Excelフロントエンドソリューションよりも遅くなる可能性があります。

于 2012-11-09T20:11:34.033 に答える
2

データベースにクエリを実行し、Excel VBA を使用して後で分析およびレポートするために 600 万件以上のレコードを保存する必要があります。

Excel 2010 でも 1,048,576 行に制限されていることを考えると、これらのレコードのサブセットに対して分析が行われることを願っています。

後でデータにアクセスして分析し、分析したデータに関するレポートを生成できるようにする必要があります (システム内のローカルでデータ全体にアクセスでき、高速に処理できる必要があります) データを保存するための MS アクセスはどの程度優れているかレコードの量が数百万になると?

それはそれを行うでしょう。私はそれを行いました(何年も前に、Oracleデータベースへの直接接続を介して)、パックのジョーカーは、言及されたコメントの1つとして、そこにいくつの列があるかという問題です。大規模なデータ セットを扱う場合、Access の 2 GB のファイル サイズ制限に頭を悩ませ始めるのはかなり簡単です。

「速い」は別の問題です。とりわけ、大量のデータを扱うときの速度が許容できないほど遅いと考えているため、Access での作業をほとんどやめました。「JET」という名前の由来はどこにあるにせよ[1]、Hades はその速度の比喩ではなかったことは確かです。

Access の利点の 1 つは、Excel スタイルの分析レポート (一部のグラフィカル レポートを含む) を (迅速ではないにしても) 非常に簡単に作成できることと、それらの作成に VBA を使用できることです。一方、私の日常のデータ処理ツールである SQL Server は、はるかに高速ですが、フロント エンドはほとんどありません。おそらく理想的な状況は、Access または Excel のいずれかを使用してフロント エンドを実行し、SQL Server を使用して重労働を実行することです (ただし、データをローカルに保存するのではなく、Oracle で実行できる場合を除きます)。次に、Excel/VBA に、Oracle から直接取得した要約されたクエリに関するレポートを作成させるだけです。

レポートが数百万行に及ぶ場合は、Excel の使用を避けたいと思いますが、現実的には、それほど長く実行されるレポートに価値はありません。これはレポートではなく、データ ダンプです。


[1] はい、はい、知っています。ジョイント エンジン テクノロジーです。

于 2012-11-09T19:16:28.937 に答える