クエリ処理
クエリ処理
CData は、クライアントサイドのSQL エンジンを本製品 ライブラリに組み込んでいます。これにより、フィルタ、集約、関数など、SQL-92 が提供する全機能をサポートすることができます。SQL-92をサポートしないソースに対しては、本製品 はExact Online にSQLステートメントの処理を可能な限りオフロードし、残りのクエリをクライアントサイドのインメモリで処理します。その結果、最適なパフォーマンスを得ることができます。
限られたクエリ能力のデータソースに対しては、本製品 はSQL クエリの変換をおこない、本製品 がより単純になるよう処理します。 目標はデータソースのクエリ能力に基づいて賢く判断し可能な限り計算を抑えることです。Exact Online のクエリ評価コンポーネントはSQL クエリを検証し、本製品 がネイティブに実行できないクエリ部分を示す情報を返します。
Exact Online のクエリスライサーコンポーネントはより具体的なケースにおいて1つのクエリを複数の独立したクエリに分割するために使用されます。クライアントサイドのクエリエンジンはクエリの簡素化、複数のクエリへの分割、結果セットのサイズを最小化しながらクライアントサイドで集約のプッシュダウンや計算をするなどの決定を行います。
クエリを部分的にでもクライアントサイドで評価するということには大きなトレードオフがあります。このモデルでは効果的に実行することが不可能なクエリは常に存在し、この方法で計算すると特にコストが高くなるものもあります。CData は可能な限り効率的なクエリを生成し、最も柔軟なクエリ機能を提供するために常にデータソースに対して実行可能な限りのクエリをプッシュダウンしています。