Поскольку вы используете ADO.NET, вы можете использовать встроенные в ADO.NET возможности пула соединений . На самом деле, позвольте мне уточнить, что: вы должны всегда использовать встроенные возможности пула соединений ADO.NET. Таким образом вы получите среду выполнения .NET для прозрачного управления своими подключениями в фоновом режиме. Соединения будут оставаться открытыми некоторое время, даже если вы закрыли их и повторно используете, если откроете новое соединение. Это действительно быстрый материал.
Обязательно укажите в строке подключения, что вы хотите использовать пул соединений, поскольку это может не соответствовать поведению по умолчанию.
Вам нужно создавать соединения локально только тогда, когда они вам нужны, так как они объединяются в фоновом режиме, поэтому при создании нового соединения нет лишних затрат:
using (var connection = SomeMethodThatCreatesAConnectionObject())
{
// do your stuff here
connection.Close(); // this is not necessary as
// Dispose() closes it anyway
// but still nice to do.
}
Вот как вы должны это делать в .NET.