Best practice when querying same database multiple times in different workflows

I have a workflow that will be querying various tables in 2 separate databases (one Access, one Oracle) and will be using the enhanced reframework

Is it best to create a single workblock that selects all the tables used throughout the workflow, store them as datatable arguments, and pass them into the various workflows?

Or is it better two query the tables within the workflows directly as needed? If I go this route, is it best I connect/disconnect after every query? Or save the connection as a variable and only disconnect at the end?

@Dave As for as connection connect in once in starting and close the connection at end, Since connecting everytime and disconnecting it takes some time and also it will add more activities to ur workflow also.