@Mark Ransomは、Excelがデータをメモリに保持し、計算を高速化するという概念に間違いなく取り組んでいます。また、Excel がデータベースよりも応答性が高くなるような方法でデータセットを事前にインデックス付けすることも可能です。
なぜ高速なのかについては、アルゴリズムに依存しない重要な可能性が 1 つあります。ピボット テーブルを使用する Excel には、結合の概念がありません。データベースからアドホックにデータを取得している場合、テーブル間の結合または相関により、さらにルックアップ、スキャン、インデックスの読み込みなどが行われます。Excel ではすべてのデータが 1 つの場所 (RAM またはなし) にあるため、データセットを事前に形成することなくルックアップを実行します。データベース データを一時テーブルにロードする場合、そのテーブルに対するアドホック クエリが Excel に対してどのようにパフォーマンスの観点から積み上げられたかを確認することは興味深いでしょう。
ただし、データベースは正確なレポートを作成するための優れたツールですが、従来の正規化されたデータベースはアドホック クエリには最適とは言えません。正規化されたデータ構造は、何よりも整合性に重点を置いているため (その自由があれば)、すべてのデータを適切に保つことを犠牲にして、アドホックな最適化を犠牲にします。これは良い例ではありませんが、次の正規化されたスキーマを検討してください。
+--------+ +---------+
|tblUsers| |luGenders|
+--------+ +---------+
|ユーザーID | |性別ID |
|性別ID||性別|
+--------+ +---------+
SELECT * FROM luGenders;
> 1 人の女性
> 2 男性
この例で、システム内の女性/男性ユーザーの数を知りたい場合、データベースは結合を処理し、それに応じて動作する必要があります (これも、結合数とユーザー数が少ないため、悪い例です)これにより、通常はデータベース エンジンの最適化が行われます)。ただし、このデータを Excel にダンプした場合、データを取得するためにデータベース ペナルティが発生しますが、実際に Excel でデータをピボットするとかなり高速になります。Excel が直接的なアドホック クエリよりも高速であるというあなたの考えによって、前払いの固定コストのペナルティというこの概念が見落とされている可能性がありますが、コメントするデータはありません。
ただし、最も重要な点は、一般的なデータベースは正確性に優れていますが、アドホックなレポートに欠けることが多いということです。アドホック レポートを作成するには、多くの場合、よりクエリしやすい構造でデータを非正規化 (「ウェアハウス」) する必要があります。データ ウェアハウジングに関する情報を調べると、この件に関して多くの良い結果が得られます。
話の教訓: 完全にアルゴリズム化された高速なアドホック クエリ システムを持つことは素晴らしい理想ですが、スペースと時間の制約 (メモリと人件費) を考えると実用的ではありません。アドホック システムを効果的に生成するには、データのユース ケースを理解し、それを効果的に非正規化する必要があります。
The Data Warehouse Toolkitを強くお勧めします。記録のために、私は DBA ではありません。私は、Excel と Oracle を操作するために 1 週間に 80 時間を費やしているただの低レベルのアナリストです。私はあなたの痛みを知っています。