Форум: "Базы";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];
ВнизОчень медленно предаются данные запроса по сети Найти похожие ветки
← →
Delf (2003-12-02 16:34) [0]Ситуация такая:
Два сегмента сети соиденены модемами скорость передачи данных между ними низкая. На одном конце находится MSSql-сервер на другом моя прога
Если запрос написать не из Дельфы то результат запроса возвращается за 14 секунд(2500 записей).
А эсли тот же запрос передать из Дельфы то ждать приходится полторы минуты.
Прога большая и все DataSet привязаны к одному ADOConnection
Пробовал тот же запрос виполнить через другой ADOConnection то результат пришел через 18 секунд.Но стоит к этому ADOConnection подцепить еще один dataSet и опять начинаются тормоза
В чем дело? Может я ADOConnection не правильно настроил?
← →
Delirium (2003-12-02 17:02) [1]Смотри CursorLocation
← →
Delf (2003-12-02 18:03) [2]У меня выставлено clUseClient
clUseServer по-моему загружаtт сервер а с ним работают много юзеров и работают интенсивно
← →
Кщд (2003-12-03 06:52) [3]2500 записей возвращать действительно необходимо?
← →
Andriy Tysh (2003-12-03 10:25) [4]
> Кщд (03.12.03 06:52) [3]
Поверте мне, необходимо. Такая уж задача эта.
А "тормоза" эти я на свои глаза видел.
Просто в чём первоначальная проблема? Програма сначала работала на Sybase, причём сервер был практически на каждой машине(см. "локально"). Когда ребята перевили прогу на MS SQL, то началась гонитва за економией. А добится её пока-что мешает этакая проблемка.
Большая прозьба всем помочь.
← →
Anatoly Podgoretsky (2003-12-03 11:42) [5]Кто мешает и сейчас сервер на каждой машине, благо бесплатно и в комплект входит.
← →
Anatoly Podgoretsky (2003-12-03 11:43) [6]Тем более, что передача по модему.
← →
Andriy Tysh (2003-12-03 12:52) [7]
> Anatoly Podgoretsky © (03.12.03 11:42) [5]
> Anatoly Podgoretsky © (03.12.03 11:43) [6]
К сожалению Ваши ответы нам ничем не помогут!
Но спасибо!
← →
Anatoly Podgoretsky (2003-12-03 13:02) [8]Почему, у вас же стояли репликационные сервера, MS SQL это позволяет и его лицензия тоже, в комплект для этой цели включен MSDE.
Решение типовое для работы по низкоскоростным каналам.
Скорость драматические улучшится, а если еще и алгоритмы пересмотреть, так вооще будет летать.
← →
Andriy Tysh (2003-12-03 14:51) [9]
> Anatoly Podgoretsky © (03.12.03 13:02) [8]
Полностью согласен с Вами.
Но повторю немножко вопрос:
почему на Делфи запрос идет полторы минуты, а из, например, QueryAnalizer - за 14 сек? Предпологается, что никакой обработки даных нет. Только сам селект так долго выполняется.
← →
Delirium (2003-12-03 14:59) [10]Между Delphi и Query Analyzer нет никакой разницы, и то и другое использует ADO, следовательно смотри свои настройки.
← →
ЮЮ (2003-12-04 02:49) [11]>почему на Делфи запрос идет полторы минуты, а из, например, QueryAnalizer - за 14 сек?
А ты уверен, что QueryAnalizer "выкачал" все записи? Попробуй перейти в конец выборки
← →
Andriy Tysh (2003-12-05 10:29) [12]
> ЮЮ © (04.12.03 02:49) [11]
Уверен.
← →
Конструктор (2003-12-05 16:45) [13]>Andriy Tysh
Проверте выборку в ваших вариантах на разогретом и неразогретом кэше.
← →
sniknik (2003-12-05 17:36) [14]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 например у меня он был намного быстрей).
← →
Andriy Tysh (2003-12-06 15:22) [15]
> sniknik © (05.12.03 17:36) [14]
CursorLocation выставлен в clUseClient.
Но мы дослидили следующее:
приKeepConnection=False
запрос быстрее выполняется, чем при True. Почему так. Кажется, что при True должно бы быстрее делатся ибо не открывается каждый раз конекшен? Иль я ошибаюсь?
А так все остальные настройки остались такими же какие дает Борланд по Дефаулту.
← →
sniknik (2003-12-06 23:27) [16]> CursorLocation выставлен в clUseClient.
попробуй с серверным, QueryAnalizer с серверным работает (уверен на 95% :)
> при KeepConnection=False запрос быстрее выполняется
хз. не проверял, было неактуально. как предположение, если связь обрывается но не в компоненте а на другом конце? тогда что произойдет? вместо установки коннекта сразу, будет попытка передачи по старому, дальше отказ/таймаут и соеденение по новой. похоже?
т.е. быстее то быстрей но только если канал стабильный (с модемом это не так).
кстати если это правда так то у дебя должно через раз то быстрее то медленней (если только MSSQL не обрывает коннект в любом случае по какойто причине).
← →
Andriy Tysh (2003-12-08 12:13) [17]
> 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 с). В чём тут секрет иль его нет? Какие настройки? Как я понял - это с помощью АДО?
← →
Andriy Tysh (2003-12-08 16:32) [18]
> sniknik © (06.12.03 23:27) [16]
Хотелось бы узнать настройки АДО в дэмке, если возможно.
Неужели толькоCursorLocation=clUseClient
?
← →
sniknik (2003-12-08 16:41) [19]> Я был удевлён, ибо по сравнению с аналайзером в 2-3 раза один запросик с джоинами делался (5 с и 18 с). В чём тут
> секрет иль его нет? Какие настройки? Как я понял - это с помощью АДО?
да полностью на АДО.
> Хотелось бы узнать настройки АДО в дэмке, если возможно.
> Неужели только CursorLocation=clUseClient?
насколько помню стандартные (т.е. как ложиш на форму с теми и есть), в том числе и CursorLocation=clUseClient
менялись только таймауты. (на 0 бесконечное ожидание запроса) вроде бы так.
(посмотреть точно пока не могу, писалось дома а у меня как раз сейчас монитор сгорел думаю до суботы не куплю. и как назло на работе недавно "чистку" делал :(
← →
JibSkeart (2003-12-08 16:44) [20]залесь в профайлер да смотри что там у тебя делается .
← →
Andriy Tysh (2003-12-08 16:47) [21]
> sniknik © (08.12.03 16:41) [19]
:-(
А как можно было бы после удачной покупки монитора посмотреть на алгоритм? Ибо ветвь умрет, как я вижу. А проблема и неудовольствие юзеров останутся.
← →
sniknik (2003-12-08 17:18) [22]> А как можно было бы после удачной покупки монитора посмотреть на алгоритм?
напиши мне, почту буду разбирать только после ее (удачной покупки ;о) етественно (домашнюю на работе обычно не смотрю). только напиши по какому поводу, за неделю забуду (а возможно и не в эту суботу куплю :о((
но вообше там ничего такого нет, единственное существенное это выполнение запросов идет в ADOCommand а после присвоение рекордсета датасету, после некоторого анализа, (нужно на случай если пакет возвращает несколько рекордсетов, ну типа
SELECT * FROM Table1
SELECT * FROM Table2)
но вот скорость от этого зависит? не думаю.
← →
Andriy Tysh (2003-12-09 10:29) [23]
> sniknik © (08.12.03 17:18) [22]
Хорошо. Напишу обязательно.
Желаю удачной покупки!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.01 c