Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.05;
Скачать: CL | DM;

Вниз

Очень медленно предаются данные запроса по сети   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.032 c
1-11910
Mishenka
2003-12-20 21:37
2004.01.05
Есть Image с картинкой. Как развернуть картинку на весь экран?


14-12093
Andrew_Glotov
2003-12-11 21:01
2004.01.05
---|Ветка была без названия|---


1-11971
TUser
2003-12-19 12:39
2004.01.05
label.Caption:TStrings


4-12212
Дархан
2003-11-04 11:03
2004.01.05
Язык


1-11886
k_len
2003-12-11 09:42
2004.01.05
События клавы