Руководство по работе с БД Firebird с использованием библиотеки ADO .Net 2.0


Пул подключений - часть 2


//OLE DB SERVISES = все сервисы отключены builder.OleDbServices = OleDbServicesValues.DisableAll; timeResults.Add( String.Format("OLE DB Services=DisableAll ({0})", builder.OleDbServices), DoConnections(builder, connection_count));

//OLE DB SERVICES = все включено, за исключением клиентских курсоров

//и работы за пределами сессии builder.OleDbServices = (OleDbServicesValues.EnableAll & ~ OleDbServicesValues.ClientCursor & ~ OleDbServicesValues.AggregationAfterSession); timeResults.Add( String.Format("OLE DB Services=\n"+ "\tEnableAll & \n" + "\t~ClientCursor & \n" + "\t~AggregationAfterSession ({0})", builder.OleDbServices), DoConnections(builder, connection_count));

foreach (string key in timeResults.Keys) Console.WriteLine(key + ". Seconds elapsed: " + timeResults[key]); }

/// <summary>

/// Открывает и закрывает много подключений, а так же стартует транзакции

/// </summary>

/// <param name="builder"></param>

/// <param name="cnt_connection"></param>

/// <returns>Сколько секунд выполнялось</returns> private double DoConnections(OleDbConnectionStringBuilder builder, int cnt_connection) { DateTime startTime = DateTime.Now;

for (int i = 1; i <= cnt_connection; i++) { OleDbConnection con = new OleDbConnection(builder.ToString()); con.Open(); OleDbTransaction trans = con.BeginTransaction(); trans.Commit(); con.Close(); }

return DateTime.Now.Subtract(startTime).TotalSeconds; }

Наиболее производительным будет вариант при использовании только пула ресурсов и автоматического подключения транзакций – это соответствует битовой маске OleDbServicesValues.EnableAll & ~OleDbServicesValues.ClientCursor &~ OleDbServicesValues.AggregationAfterSession (параметр “OLE DB Services =-13”) .

Чуть медленнее будет работать при использовании всех Ole Db сервисов. И наконец производительность значительно падает (примерно в 20 раз) при полностью выключенных сервисах.

Подробнее об управлении пулом подключений в MSDN - здесь.




Начало  Назад  



Книжный магазин