次のマクロでは、SELECT文とDELETE文が単一の複文リクエストとして構成されています。
CREATE MACRO res_use (from_date (DATE, DEFAULT DATE), to_date (DATE, DEFAULT DATE), from_time (INTEGER, DEFAULT 0), to_time (INTEGER, DEFAULT 999999), proc (VARCHAR(4), DEFAULT 'P'), secs (SMALLINT, DEFAULT 600) ) AS (SELECT the_date (TITLE 'Resource//TheDate'), the_time (TITLE 'Utilized//TheTime'), proc, AVERAGE(hits) (TITLE 'Avg//Hits'), MAXIMUM(cpu) (TITLE 'Max//CPU'), AVERAGE(cpu) (TITLE 'Avg//CPU'), MAXIMUM(disk) (TITLE 'Max//Disk'), AVERAGE(disk) (TITLE 'Avg//Disk'), MAXIMUM(host) (TITLE 'Max//Host'), AVERAGE(host) (TITLE 'Avg//Host'), MAXIMUM(chan) (TITLE 'Max//Chan'), AVERAGE(chan) (TITLE 'Avg//Chan') FROM DBC.res_use_view GROUP BY the_date, the_time, proc WHERE the_date BETWEEN :from_date AND :to_date AND the_time BETWEEN :from_time AND :to_time AND proc CONTAINS :proc AND secs EQ :secs ORDER BY proc, the_date, the_time ;DELETE FROM res_use_view ALL;);
Teradataセッション モードでは、先行するマクロが実行されるが、明示的なトランザクションの境界内で実行されるのではない場合に、DELETE文に対して高速パス削除処理が使用されます。無条件高速パス削除処理を参照してください。
ANSIセッション モードでは、マクロにCOMMITが組み込まれている場合、またはリクエスト内でCOMMITがリクエスト行の最後にマクロの実行の直後に指定されている場合に、DELETE文に対して高速パス削除処理が使用されます。
例えば、先行するマクロの最終行は次のようにすることができます。
DELETE FROM res_use_view ALL ; COMMIT;) ;
COMMITが、マクロ自体またはマクロを実行するリクエストに指定されていない場合には、DELETE文に対して低速パス処理が使用されます。