>It's a significant difference when repeatedly calling procedures that open and close tables.
It is convenient to keep the tables open. For example, let's assume you need an audit-trail, which writes information to a certain table. Just have the audit function check if the table is open (with a specific alias). If it isn't, open it with that alias. At the end of the function, keep the table open. This is not entirely "clean", but the speed difference can be quite significant. To avoid conflicts with other functions ("table is already open"), give it a specific alias, different from the table name. For instance, in a function MyUDF, open a table MyTable with the alias MyTable_MyUDF.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)