oracle_fdw 1.0.0


WHERE句のpush down

oracle_fdwでは、Oracleに発行してもSELECT結果に影響しないWHERE句の条件を、Oracleに発行するSELECT文のWHERE句に含めます。 これにより、WHERE句に指定した条件を外部サーバで評価して転送データ量を削減したり、CPUリソースを分散使用することが可能です。

oracle_fdwでは、以下の条件を全て満たした場合にWHERE句に指定した条件がpush downされます。 最上位のANDで連結されたそれぞれの条件ごとにpush downできるかどうかを判断します。

ただし、以下の条件が当てはまる場合はpush downされません。

WHERE句に指定した条件がpush downされるかどうかは、EXPLAINコマンドで確認できます。

WHERE句にpush downする演算子

oracle_fdwがWHERE句にpush downする演算子の一覧を以下に示します。

種別演算子名説明
論理演算子AND論理積
OR論理和
NOT否定
比較演算子<小なり
>大なり
<=等しいかそれ以下
>=等しいかそれ以上
=等しい
<>等しくない
!=
a BETWEEN x AND y範囲内に含まれている
a NOT BETWEEN x AND y範囲内に含まれていない
IS NULL値がNULL
ISNULL
IS NOT NULL値がNULLでない
NOTNULL
算術演算子+数値の和
-数値の差
*数値の積
/数値の商
文字列演算子||文字列結合
パターンマッチLIKEパターンに文字列が一致する
~~
NOT LIKEパターンに文字列が一致しない
!~~
日付/時刻演算子+日付/時刻の和
-日付/時刻の差
*日付/時刻の積
/日付/時刻の商