Hash tables, similar to files on your hard drive, are only "opened" (not technically the correct term for hash tables), when you actually access them using commands like /hadd, /hinc, /hdec, $hget, $hfind, etc.
The tables are stored in RAM from the time they are created with /hmake or /hadd -m
They stay in RAM until you close mIRC or use the /hfree command.

As stated, you can (and usually should), use the /hsave command to save the information from your hash table to a file on your hard drive.

DLL's, on the other hand, if I recall correctly (don't use them much myself), stay loaded until they are unloaded via a command to the DLL. See
Quote:
/help DLL Support
for more details.