先達はあらまほしきことなり

デジタルテクノロジーの活用と展望

パススルークエリ

パススルークエリはAccess側ではなくODBC接続先のデータベース側でSQLを処理する技術だ。
何がいいのかと言えば、処理スピードが飛躍的に速くなることだ。

と言うよりも、Access側で素早く処理できる量の限界は低いので、ある程度大きなデータ量になれば必然的にパススルークエリを使わないとやってられないという状況が起こる。

小さな業務であればAccess側でSQLを処理しても、処理が遅くて困るようなことは起きない。
そもそもODBC接続する必要がなく、データはすべてAccess内にあるものだ。

しかし、大量のデータを処理する場合は、AccessODBC接続先のデータベースにSQLを処理するような仕掛けにする必要がある。
もし、Access側でSQLを処理したら遅くて業務が回らなくなる。

パススルークエリは応用技術のような位置づけで認識しているプログラマーが多いが、大量の情報を処理する業務システムの場合は必須技術なのだ。

大量のデータがある場合は、下記のようなシステム構成になっている。
フロントエンドはAccessを、バックエンドはデータベースサーバーを利用している場合が多い。

Access + MySQL
Access + PostgreSQL
Access + SQL Server
Access + Oracle

このようなシステムの場合は、データベース操作はほとんどパススルークエリだ。
よって、Accessにはローカルテーブルやリンクテーブルはほとんどないのだ。
ローカルテーブルやリンクテーブルはAccess側でSQLを処理する場合に必要になるオブジェクトであって、パススルークエリとは無縁だ。

Accessの処理スピードで困っている場合は、パススルークエリ化してみるとよい。