When you first reference DAO collections such as Tabledefs, DAO has to retrieve certain basic information about each Tabledef and create a corresponding object. If you have an application with over a hundred tables, say, the time to populate this collection will become significant. A way to avoid this is to split your MDB into several MDB files that contain logically grouped sets of tables and open those databases directly from DAO if you need to access them. This will create separate Tabledef collections in each Database object. Although you will still pay the collection creation hit for each .MDB, you will now have finer granularity over when or if that hit takes place.
Of course you can avoid this hit by not referencing the tabledefs (or querydefs etc.) collections at all, but that generally isn't possible in most applications.