これが本当に問題であることを確認しましたか?オープンデータベースのコストは非常に小さい可能性が高いため、特に「オープン」は、データベースを待機している未処理のトランザクションを同期し、基本的な整合性チェックを行うことで構成される可能性が高いため、言及するだけです (特に、保存されたデータのページをロードする)ディスク上)。
これが完了すると、アクティビティがなければ、サーバー上で維持するデータはそれほど多くありません。
考えてみれば、DB システムの最も基本的な機能は、メモリを使用してデータベース ページのキャッシュを管理することです。データの一部に対する要求が行われると、システムは実際のページを特定し、RAM をチェックしてロードされているかどうかを確認します。そうでない場合は、ディスクからロードします。
また、DB の「メタ」データの膨大な量がデータベースに保存されていることにも注意してください。つまり、システムが何かを知りたい場合、システム自体を効果的に使用して、特にデータ ページ キャッシング サブシステムで情報を見つけます。
他のキャッシュと同様に、データが期限切れになり不要になると、データはディスクにフラッシュされ、必要に応じて再フェッチされます。
したがって、これは、データベースが「開かれる」と、その状態を維持するために本当に必要な情報がデータ キャッシュ サブシステムを介して維持される可能性が高く、未使用のデータベースについては、現在のトラフィックのためのスペースを確保するためにディスクに戻されることを意味します。
これが、候補 DB をテストして、これに関する問題が発生したかどうか、またはデータベースに「データベースを開く」という概念さえあるかどうかを知りたい理由です。
クライアントとしてこれについて話し合うとき、焦点はデータベース サーバーへの接続に集中する傾向があります。しかし、それらがすべて閉じられると、システムが非アクティブな特定のデータベースに関する大量のメモリ データを保持することはないと思います。
結局のところ、データベース内のすべてのデータは「同じ」ように格納され、テーブルはテーブルであり、インデックスはインデックスであり、特にすべてのデータ ページが管理される中央サーバーではインデックスです。データの単一の大きな「スープ」として。
発生する可能性のある唯一の問題は、データベースがたまたま各データベース専用のファイルを作成し、そのファイルが開いたままになっている場合です。最終的に、ファイル記述子が不足する可能性があります。
しかし、最新のシステムのほとんどはそれを行わず、それらが存在するデータベースやスキーマに関係なく、すべてをファイルの大きな塊に保存します (もちろん、作成した特定のテーブルスペースの割り当てやサーバーが許可した場合を除きます)。
したがって、基本的に、これは問題ではないと思います。なぜなら、現代のデータベースは、あなたが社内で話しているような区別を実際に行っているとは思わないからです。複数のデータベースまたはスキーマはシステム内の論理的な成果物であり、技術的な実装ではありません。また、すべてのデータ ページは最終的に同じキャッシュに格納され、元のスキーマ、データベース、テーブル、またはインデックスに関係なく同じリソースを使用します。 .
これが問題かどうかを確認するために、選択したデータベースでいくつかのテストを行います。たとえば、100 万個のデータベースを作成し、データベースのメモリを可能な限り減らしてから、それらの循環を開始し、適切と思われる数 (10、100、1000 など) を一度に開いて、問題があります。
最後に、特定のデータベースについてこれを「知っている」わけではありません。これは、歴史的にデータベースがどのように実装されているかについての本能です。