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

Вниз

TDataSetProvider   Найти похожие ветки 

 
Yan   (2003-05-26 00:52) [0]

Есть такая проблемма: имеется некоторое клиентское приложение на котором расоложены TClientDataSet ы, которые посредством TDataSetProvidera имеют доступ к некоторым таблицам. Если в таблицах там больше ста полей больше 1000 записей то загрузка данных с сервера занимает примерно 24 сек, на 3-м пне (900Мгц). Штуки с PacketRecords не подходят. Есть варианты как можно ускорить процесс передачи данных?


 
Digitman ©   (2003-05-26 09:29) [1]


> Есть варианты как можно ускорить процесс передачи данных?


Оптимизируй запрос, возвращающий клиенту набор данных. Тот самый, что использует TDataSetProvider. Возможно, в БД следует либо создать необходимые индексы либо посторить SQL-выражение таким образом, чтобы оно задействовало уже существующие (нужные в контексте запроса) индексы.

А TClientDataSet здесь, скорей всего, ни при чем.


 
Vassiliy ©   (2003-05-27 09:09) [2]

Какие у Вас компоненты доступа к БД? Используете ли Вы связь Master-Detail?


 
Yan   (2003-05-27 19:43) [3]

Индексы в интеребейсе по длинным текстовым полям не построишь. Дело в том, что запрос сам по себе на сервере выполняется 2 сек. я проверял. Но вот процесс передачи очень долгий почему-то. Я вообщем то нашел выход. Сделал еще одного провайдера и запрос, который вибираетт записи по 3-м четырем полям, грузится гораздо быстрее. Но дрежать вда провадейра как-то не охота. Проблемма именно со скоростью передачи данный от провайдера к клиентдатасету.


 
Zacho ©   (2003-05-27 20:11) [4]


> Yan (27.05.03 19:43)
> Индексы в интеребейсе по длинным текстовым полям не построишь.
> Дело в том, что запрос сам по себе на сервере выполняется
> 2 сек. я проверял. Но вот процесс передачи очень долгий
> почему-то.

До хрена данных передается, потому и долгий. И будь у тебя хоть Оракл, хоть DB2 - но если резалтсет большой - будет он долгий. И дело тут не в тактовой частоте процессора. Оптимизируй запрос. Выбирай столько записей, сколько реально нужно, не больше. Все равно юзер не сможет нормально работать с гридом с несколькими тысячью записей.


 
Yan   (2003-05-27 23:09) [5]

Ок. А что тогда делать если к этому гриду прикручен поиск и главное и есть случаи, когда надо искать среди всех записей?


 
Zacho ©   (2003-05-27 23:24) [6]


> Yan (27.05.03 23:09)

Делать поиск другим способом. Как именно - зависит от особенностей задачи.
Например, для поиска по всем записям - отдельная форма. И сначало SELECT COUNT .. Если кол-во записей больше нескольких десятков (в крайнем случае - сотен, хотя уже со 100 записями в гриде работать крайне неудобно) - пусть пользователь уточнит параметры поиска. А если хочет видеть охрененное кол-во записей - то он ССЗБ (Сам Себе Злобный Буратино) и пусть ждет, пока они все зафетчатся на клиента.


 
Yan   (2003-05-28 01:18) [7]

Zacho © : А че, это мысль :)


 
Zacho ©   (2003-05-28 01:40) [8]


> Yan (28.05.03 01:18)

Это только один из множества вариантов. Все зависит от задачи. Главное - спроектировать приложение так, что бы на клиента выбиралось минимум записей. Точнее, чтобы интерфейс к этому распологал :-) Но, как известно, можно сделать защиту от дурака, но изобретательный дурак всегда сможет ее обойти :-) Но если это будет оговорено в инструкции, а пользователь возмущен медленной работой приложения - то он ССЗБ


 
Danilka ©   (2003-05-28 07:44) [9]

Судя по всему, надо оптимизировать не только кол-во записей, но и кол-во полей: "больше ста полей" - это круто! только реально юзеру не нужно.
В гриде ему наврядли нужно больше 2-6 полей, а остальное он может получить открыв интересующую запись в отдельной форме.



Страницы: 1 вся ветка

Текущий архив: 2003.06.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
14-60404
Думкин
2003-06-03 12:42
2003.06.19
Цивилизация и .... мы.


1-60235
bkv
2003-06-03 15:05
2003.06.19
Необходимо из сервиса вызвать программу.


3-60062
sunrider
2003-05-28 00:04
2003.06.19
Обработка информации по типу удаленных процедур


1-60250
Danil%%
2003-06-05 21:41
2003.06.19
Вопрос о строке в файле


1-60257
Alex-21
2003-06-04 21:20
2003.06.19
Virtual Key Сodes