Поскольку вы используете ADO.NET, вы можете использовать встроенные соединение ADO.NET в пулы возможности. На самом деле, позвольте мне уточнить это: вы должны всегда использовать встроенные возможности объединения ADO.NET. Поступая таким образом, вы получите среду выполнения .NET, чтобы прозрачно управлять своими подключениями для вас в фоновом режиме. Он будет держать соединения открытыми на некоторое время, даже если вы их закрыли и повторно их используете, если вы откроете новое соединение. Это очень быстро.
Обязательно укажите в строке подключения, что вы хотите объединить соединения, поскольку это может быть не поведение по умолчанию.
Вам только нужно создать соединения локально, когда вы нуждаетесь в них, так как они объединяют в backrgound так что нет никаких накладных расходов при создании нового соединения:
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.
Нет ничего, что можно было бы получить, поддерживая соединение открытым (предполагая, что поставщик использует пул соединений). Официальный поставщик MySQL Connector/Net использует пул соединений по умолчанию. В OP не упоминается, какой провайдер они фактически используют, но если он поддерживает объединение, я бы использовал открытую раннюю стратегию позднего/закрытого периода и позволял провайдеру управлять базовыми физическими соединениями. – LukeH
Извините, что добавил комментарий к старой теме. Я читаю http://download.oracle.com/javadb/10.3.3.0/devguide/cdevconcepts89498.html, кажется, что до тех пор, пока ваше приложение имеет несколько потоков/транзакций, рекомендуется назначить каждый поток отдельному соединению , Благодарю. –