|
Archives of the TeradataForumMessage Posted: Sat, 06 Oct 2001 @ 01:33:14 GMT
Hi Geoffrey: I am not sure what example you have seen, but I will take a shot at answering my understanding of your question regarding the USING and EXPLAIN. The following macro uses 2 parameters as input. REPLACE MACRO My_macro (in_1 integer, in_2 char(3)) AS (UPDATE mytable SET column1 = column1 + 10 WHERE column2 = :in_1 AND column4 = :in_2 ; SELECT column1, column2, column3, column4 FROM mytable AS MT RIGHT OUTER JOIN table2 ON MT.column4 = table2.column6 WHERE MT.column2 = :in_1 AND ( table2.column4 = :in_2 OR MT.column4 IS NULL ) ; ) ; If you do the following: EXPLAIN EXEC Mybetter_macro (10, 'XYZ'); The optimizer has already optimized the macro with the values of 10 and XYZ. Therefore, the time estimation is less accurate. Therefore, by incorporating the USING as seen here: USING A INT, B CHAR(3) EXPLAIN EXEC Mybetter_macro (:A, :B); The EXPLAIN gives a better estimate of the processing required at runtime. I hope this helps you understand the difference. Regards, Mike
| ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
Copyright 2016 - All Rights Reserved | ||||||||||||||||||||||||||||||||||||||||||||||||
Last Modified: 15 Jun 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||