powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Connection.Open() длительностью в 0,5 секунды !!!
5 сообщений из 5, страница 1 из 1
Connection.Open() длительностью в 0,5 секунды !!!
    #32080308
Уважаемые гуру, подскажите...

Что это может быть...

Пишу я консольное приложение, в общем, там обрабатываются два больших XML файла, и после этого, просто необходимо соединится с БД, кое-что считать, а потом и кое-что записать. Так вот, запускаю я его, запоминаю время вначале, определяю время в конце, в результате - время выполнения класса

1,14хххх секунды

Снимаю интервалы времён выполнения в ключевых местах программы, так вот - обработка двух больших XML файлов занимает 0,23хххх секунды, SqlConnection.Open() - 0,52xxxx, а чтение из БД элементарным Select'ом ("SELECT XmlFile FROM XmlObjects WHERE ID IN (14,67)") - 0,25хххх секунды
Оставшееся время занимает всякая возня с классами и т.д.

Уточню, БД расположена на этом же компьютере, коннекшн я формирую из класса подключаемой dll(написанной мной же). Коннекшн создаётся строкой -

SqlConnection Conn = SqlDBConnection.Connect.GetConnect("MyDB");

Код этой самой dll привожу ниже -


namespace SqlDBConnection
{
public class Connect
{
public static SqlConnection GetConnect(String db)
{
String ConnectionString = "server=10.10.10.98;uid=worker;pwd=worker;database="+db;
SqlConnection Conn = new SqlConnection(ConnectionString);
return Conn;
}
}
}



По той же самой схеме я создаю конекшн на ASP.NET страницах - всё летает!!!

Подскажите, в чём я не прав...

В SqlProfiler запускаю TRACE с полями EventClass | TextData | Duration | StartTime | EndTime ... В результате при выполнении приложения -

Audit Login I set quoted_identifier on.... I I .... 11:11:19:897 I I
RPC:Completed I exec sp_reset_connection I 0 I .... 11:11:20:037 I .... 11:11:20:037 I
RPC:Completed I exec sp_executesql N'SELECT.... I 0 I .... 11:11:20:037 I .... 11:11:20:037 I
Audit Logout I I 2343 I .... 11:11:19:897 I ....11:11:22:240 I

Что это за @#$^&!$ !!!!!!
...
Рейтинг: 0 / 0
Connection.Open() длительностью в 0,5 секунды !!!
    #32080322
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сперва в сети ищется компьютер с NETBIOS-именем "10.10.10.98". Не находиться. Тогда ищется компьютер с DNS-именем "10.10.10.98". Увы и тут облом. И только тогда идет обращение к серверу с ip-адресом 10.10.10.98

В вашем случае, как мне представляется, сильно ускорило бы задание алиаса в Client Network Utility с использованием в строке соединения имени алиаса. В этом случае разрешение имени в адрес было бы мгновенным. Такого же результата можно добиться прописыванием связки имя-адрес в файле hosts или lmhosts.
...
Рейтинг: 0 / 0
Connection.Open() длительностью в 0,5 секунды !!!
    #32080327
Пишу с помощью Allias'а -

SqlConnection Conn = new SqlConnection("server=SQLSERVER;uid=worker;pwd=iwanttowork;database=PetroAlliance");

Тоже самое ... :-(
...
Рейтинг: 0 / 0
Connection.Open() длительностью в 0,5 секунды !!!
    #32080357
Вот что я нашёл - что если подряд создать два разных объекта SqlConnection, один после другого -

SqlConnection Conn2 = new SqlConnection ("server=10.10.10.98;uid=worker;pwd=worker;database=MyDB");
Console.WriteLine("Creating 1 Connection ...");
System.DateTime point2 = System.DateTime.Now;
Conn2.Open();
System.DateTime point3 = System.DateTime.Now;
TimeSpan tempPoint = point3 - point2;
Console.WriteLine("Connection Time - {0}",tempPoint.TotalSeconds.ToString());
/************************************************************
System.DateTime startPoint = System.DateTime.Now;
SqlConnection Conn = new SqlConnection("server=10.10.10.98;uid=worker;pwd=worker;database=MyDB");
Console.WriteLine("Creating 2 Connection ...");
Conn.Open();
System.DateTime endPoint = System.DateTime.Now;
TimeSpan interval2 = endPoint - startPoint;
Console.WriteLine("Connection Time - 0}",interval2.TotalSeconds.ToString());
Console.ReadLine();

То Вот что получается -

Creating 1 Connection ...
Connection Time - 0,8412096
Creating 2 Connection ...
Connection Time - 0,0100144
...
Рейтинг: 0 / 0
Connection.Open() длительностью в 0,5 секунды !!!
    #32080444
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А второй раз соединения не происходит. Оно берется из пула соединений.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Connection.Open() длительностью в 0,5 секунды !!!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]