which is the most efficient?

to keep opening and then closing
workspaces and database object variables
within procedures or..

to keep them open
with different variables?