MAKENOTDEP
このOPTIONSは、テーブルがDependent Joinとして使用されないようにすることができます。以下の例では、結合がどのように強制的に独立させられるかを示しています:
SELECT soh.customerid, soh.subtotalFROM dwh.SalesOrderDetailBig sod JOIN /*+ MAKENOTDEP */ pgsql_local_data.SalesOrderHeader soh ON sod.salesorderid = soh.salesorderid ;;MAKEDEP
このOPTIONSオプションは、プランナに問い合わせるテーブルに、取得されるデータ量を減らすためにDependent Joinを使用するように強制します:
SELECT soh.customerid, soh.subtotalFROM dwh.SalesOrderDetailBig sod JOIN pgsql_local_data.SalesOrderHeader soh ON sod.salesorderid = soh.salesorderid OPTION MAKEDEP dwh.SalesOrderDetailBig;;MAKEIND
以下の例では、MAKEINDMAKEDEPオプションを使って依存関係を逆転させています。SalesOrderDetailBigが最初にクエリされ、その行がSalesOrderHeaderのフィルタリングに使用されます:
SELECT soh.customerid, soh.subtotalFROM /*+ MAKEIND */ dwh.SalesOrderDetailBig sod join /*+ MAKEDEP */ pgsql_local_data.SalesOrderHeader soh ON sod.salesorderid = soh.salesorderid ;;SELECT g_0.salesorderid AS c_0 FROM dwh.SalesOrderDetailBig AS g_0 ORDER BY c_0SELECT g_0.salesorderid, g_0.customerid, g_0.subtotal FROM pgsql_local_data.SalesOrderHeader AS g_0 WHERE convert(g_0.salesorderid, biginteger) IN (<dependent values>)


