то, что вы описываете, не имеет ничего общего с синглтоном ... сам по себе синглтон не является ни плохим, ни хорошим - только при неправильном использовании он плох (как и все).
что касается проблемы с вашим соединением:
Эта ситуация обычно решается / обрабатывается через пул соединений ...
Вы можете реализовать это самостоятельно (не рекомендуется) ... в зависимости от того, какой поставщик ADO.NET вы используете, он может уже иметь хорошо реализованный и хорошо протестированный пул соединений (например, от Devart - не аффилированный, просто счастливый клиент) ...
Пулы соединений обеспечивают своего рода кеш для соединений с БД ... когда вам нужен тот, который вы получаете из пула, когда вы закончите, вы возвращаете его в пул ... пул поддерживает соединения (в течение некоторого настраиваемого времени период с момента последнего использования или аналогичный) ... так как соединения в пуле уже созданы и открыты, вы получаете значительное преимущество в скорости ...
OTOH вы не можете получить прибыль от пула соединений, если используемые вами соединения используют разные логины и / или настройки соединения ...
UPDATE:
OleDB поставляется со встроенным механизмом пула соединений - подробности см. MSDN . В соответствии с MSDN оно включено по умолчанию ... при закрытии / удалении соединения оно будет автоматически возвращено в пул ... что, в свою очередь, означает, что в вашей ситуации вы, возможно, уже используете механизм объединения (при условии, что вы используете настройки по умолчанию для OleDB).