Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Очень медленно предаются данные запроса по сети [D7, MSSQL]


Страницы:   1 2

Delf ©   (2003-12-02 16:34:00) 

Ситуация такая:
Два сегмента сети соиденены модемами скорость передачи данных между ними низкая. На одном конце находится MSSql-сервер на другом моя прога
Если запрос написать не из Дельфы то результат запроса возвращается за 14 секунд(2500 записей).
А эсли тот же запрос передать из Дельфы то ждать приходится полторы минуты.
Прога большая и все DataSet привязаны к одному ADOConnection
Пробовал тот же запрос виполнить через другой ADOConnection то результат пришел через 18 секунд.Но стоит к этому ADOConnection подцепить еще один dataSet и опять начинаются тормоза
В чем дело? Может я ADOConnection не правильно настроил?


Andriy Tysh   (2003-12-09 10:29:00) [1]


> sniknik © (08.12.03 17:18) [22]

Хорошо. Напишу обязательно.
Желаю удачной покупки!


sniknik   (2003-12-08 17:18:00) [2]

> А как можно было бы после удачной покупки монитора посмотреть на алгоритм?
напиши мне, почту буду разбирать только после ее (удачной покупки ;о) етественно (домашнюю на работе обычно не смотрю). только напиши по какому поводу, за неделю забуду (а возможно и не в эту суботу куплю :о((

но вообше там ничего такого нет, единственное существенное это выполнение запросов идет в ADOCommand а после присвоение рекордсета датасету, после некоторого анализа, (нужно на случай если пакет возвращает несколько рекордсетов, ну типа
SELECT * FROM Table1
SELECT * FROM Table2)
но вот скорость от этого зависит? не думаю.


Andriy Tysh   (2003-12-08 16:47:00) [3]


> sniknik © (08.12.03 16:41) [19]

:-(
А как можно было бы после удачной покупки монитора посмотреть на алгоритм? Ибо ветвь умрет, как я вижу. А проблема и неудовольствие юзеров останутся.


JibSkeart   (2003-12-08 16:44:00) [4]

залесь в профайлер да смотри что там у тебя делается .


sniknik   (2003-12-08 16:41:00) [5]

> Я был удевлён, ибо по сравнению с аналайзером в 2-3 раза один запросик с джоинами делался (5 с и 18 с). В чём тут
> секрет иль его нет? Какие настройки? Как я понял - это с помощью АДО?
да полностью на АДО.

> Хотелось бы узнать настройки АДО в дэмке, если возможно.
> Неужели только CursorLocation=clUseClient?
насколько помню стандартные (т.е. как ложиш на форму с теми и есть), в том числе и CursorLocation=clUseClient
менялись только таймауты. (на 0 бесконечное ожидание запроса) вроде бы так.
(посмотреть точно пока не могу, писалось дома а у меня как раз сейчас монитор сгорел думаю до суботы не куплю. и как назло на работе недавно "чистку" делал :(


Andriy Tysh   (2003-12-08 16:32:00) [6]


> sniknik © (06.12.03 23:27) [16]

Хотелось бы узнать настройки АДО в дэмке, если возможно.
Неужели только CursorLocation=clUseClient?


Andriy Tysh   (2003-12-08 12:13:00) [7]


> sniknik © (06.12.03 23:27) [16]
> попробуй с серверным, QueryAnalizer с серверным работает
> (уверен на 95% :)

Попробую обязательно.

Обрыва соединения не было.
Интересно, что локально эти запросы из той же программы "летают".
Как на щёт предположения, что компоненты чем-то мусорят трафик?
Может был опыт?

?
> sniknik © (05.12.03 17:36) [14]

На щёт дэмки из http://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1069281940&n=1.
Я был удевлён, ибо по сравнению с аналайзером в 2-3 раза один запросик с джоинами делался (5 с и 18 с). В чём тут секрет иль его нет? Какие настройки? Как я понял - это с помощью АДО?


sniknik   (2003-12-06 23:27:00) [8]

> CursorLocation выставлен в clUseClient.
попробуй с серверным, QueryAnalizer с серверным работает (уверен на 95% :)

> при KeepConnection=False запрос быстрее выполняется
хз. не проверял, было неактуально. как предположение, если связь обрывается но не в компоненте а на другом конце? тогда что произойдет? вместо установки коннекта сразу, будет попытка передачи по старому, дальше отказ/таймаут и соеденение по новой. похоже?
т.е. быстее то быстрей но только если канал стабильный (с модемом это не так).
кстати если это правда так то у дебя должно через раз то быстрее то медленней (если только MSSQL не обрывает коннект в любом случае по какойто причине).


Andriy Tysh   (2003-12-06 15:22:00) [9]


> sniknik © (05.12.03 17:36) [14]

CursorLocation выставлен в clUseClient.
Но мы дослидили следующее:
при KeepConnection=Falseзапрос быстрее выполняется, чем при True. Почему так. Кажется, что при True должно бы быстрее делатся ибо не открывается каждый раз конекшен? Иль я ошибаюсь?

А так все остальные настройки остались такими же какие дает Борланд по Дефаулту.


sniknik   (2003-12-05 17:36:00) [10]

Andriy Tysh © (05.12.03 10:29) [12]
>> ЮЮ © (04.12.03 02:49) [11]
> Уверен.
у меня почемуто результат наоборот не в пользу QueryAnalizer.
правда проверял на локальной сети без модема.
(почему догадываюсь, по некоторым признакам он работает с серверным курсором а не с локальным)
попробуй проверь
http://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1069281940&n=1
качай демонстрашку, и сделай запрос в ней (это тоже локальный курсор, проверка на правильность настроек). тоже будет долго перешожи на серверный (для midas например у меня он был намного быстрей).


Конструктор   (2003-12-05 16:45:00) [11]

>Andriy Tysh
Проверте выборку в ваших вариантах на разогретом и неразогретом кэше.


Andriy Tysh   (2003-12-05 10:29:00) [12]


> ЮЮ © (04.12.03 02:49) [11]

Уверен.


ЮЮ   (2003-12-04 02:49:00) [13]

>почему на Делфи запрос идет полторы минуты, а из, например, QueryAnalizer - за 14 сек?

А ты уверен, что QueryAnalizer "выкачал" все записи? Попробуй перейти в конец выборки


Delirium   (2003-12-03 14:59:00) [14]

Между Delphi и Query Analyzer нет никакой разницы, и то и другое использует ADO, следовательно смотри свои настройки.


Andriy Tysh   (2003-12-03 14:51:00) [15]


> Anatoly Podgoretsky © (03.12.03 13:02) [8]

Полностью согласен с Вами.
Но повторю немножко вопрос:
почему на Делфи запрос идет полторы минуты, а из, например, QueryAnalizer - за 14 сек? Предпологается, что никакой обработки даных нет. Только сам селект так долго выполняется.


Anatoly Podgoretsky   (2003-12-03 13:02:00) [16]

Почему, у вас же стояли репликационные сервера, MS SQL это позволяет и его лицензия тоже, в комплект для этой цели включен MSDE.
Решение типовое для работы по низкоскоростным каналам.
Скорость драматические улучшится, а если еще и алгоритмы пересмотреть, так вооще будет летать.


Andriy Tysh   (2003-12-03 12:52:00) [17]


> Anatoly Podgoretsky © (03.12.03 11:42) [5]


> Anatoly Podgoretsky © (03.12.03 11:43) [6]

К сожалению Ваши ответы нам ничем не помогут!
Но спасибо!


Anatoly Podgoretsky   (2003-12-03 11:43:00) [18]

Тем более, что передача по модему.


Anatoly Podgoretsky   (2003-12-03 11:42:00) [19]

Кто мешает и сейчас сервер на каждой машине, благо бесплатно и в комплект входит.


Andriy Tysh   (2003-12-03 10:25:00) [20]


> Кщд (03.12.03 06:52) [3]

Поверте мне, необходимо. Такая уж задача эта.
А "тормоза" эти я на свои глаза видел.
Просто в чём первоначальная проблема? Програма сначала работала на Sybase, причём сервер был практически на каждой машине(см. "локально"). Когда ребята перевили прогу на MS SQL, то началась гонитва за економией. А добится её пока-что мешает этакая проблемка.
Большая прозьба всем помочь.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо