Вниз
Скачать: CL | DM;

Тормоза при работе с DBF   Найти похожие ветки 

← →
Ruff   (2003-05-05 16:30) [0]

Ребят, у меня таблица на 20000 записей сделана одним ДБФ-ом. Во время перемещения по DBGrid-у прога ужасно тормозит. Нельзя ли от этого как-то избавиться?
База подключается из локального каталога и работает через SQLQuery.


← →
Johnmen ©   (2003-05-05 17:00) [1]

Что имеется в виду под SQLQuery ?
При обратном листании тоже тормозит ?



← →
Ruff   (2003-05-05 17:12) [2]

При обратном - тоже.
Я имел ввиду TQuery, просто у него на значке SQL нацарапано ;)


← →
Соловьев ©   (2003-05-05 17:17) [3]

запрос вида
select *
from table

наверное?


← →
Johnmen ©   (2003-05-05 17:19) [4]

Может плюнуть на разбор "почему" ?
И перестать получать невнятно большие количества ?
:)


← →
Ruff   (2003-05-05 17:29) [5]

Кстати, запрос еще сложнее, чем *. Там еще куча условий...

А сократить объем БД никак нельзя. Более того он будет только расти


← →
yurikon ©   (2003-05-05 17:36) [6]

Нет обработчика события OnCalcFields?
Оно может вызываться при перемещении по Grid`у...


← →
Dred2k ©   (2003-05-05 17:37) [7]

А может он у тебя еще и "живой"?
(RequestLive := True)?


← →
Johnmen ©   (2003-05-05 17:38) [8]

>А сократить объем БД никак нельзя

Я не призываю сокращать объем таблицы (а не БД) !
Я призываю сократить объем получаемых запросом данных.


← →
sniknik ©   (2003-05-05 17:40) [9]

а если через таблицу (TTable)? не тормозит?
в смысле проверить запрос виноват или как. вообщето 20тыс плевое количество для dbf таблицы (вот 100 это уже существенно, и даже иногда смертельно).

может у тебя там куча удаленных записей? если их много может и притормозить работу.


← →
Dred2k ©   (2003-05-05 17:46) [10]


> Johnmen © (05.05.03 17:38)


> Я призываю сократить объем получаемых запросом данных.


Разумеется, это имеет значение. Но только на этапе выполнения. Товарищ через БДЕ работает, а там localsql результат во временную таблицу пихает, ничего далее не выполняя (к живым запросам не относится, по ходу). Так вот на практике навигация очень быстрая. Тут другой случай, мне думается...


← →
Johnmen ©   (2003-05-05 17:51) [11]

>Dred2k © (05.05.03 17:46)

Вот и мне странно это. В смысле сильного торможения торможения.
Поэтому и уточнял про обратное листание...
Насколько помнится ~ 20000-30000 записей без особых проблем...


← →
Dred2k ©   (2003-05-05 17:57) [12]

> Johnmen © (05.05.03 17:51)
> Насколько помнится ~ 20000-30000 записей без особых проблем...

В принципе и больше. Ограничения - только винт и терпение юзера. Ну и блобы не дергать впрямую... Это личные наблюдения про БДЕ и localsql. Причем, localsql так пашет даже для IB, к примеру, если запрос гетерогенный (создает файл со всеми данными и по нему бегает). Тормоза у товарища либо от "навесок" на датасет, либо от "живости" запроса, либо.... (сейчас придумаем) ;)


← →
sniknik ©   (2003-05-05 18:08) [13]

а еще вопрос DBGrid это именно DBGrid? не Ehxxxx, Xxxxx либо подобное? В какойто версии сталкивался там вся таблица(или часть от запроса) в память вкачивалась, как будто в StringGrid, за счет этого дополнительные возможности, но если памяти мало то и дополнительные тормоза.


← →
MsGuns ©   (2003-05-05 18:23) [14]

Эхгрид тормозит однозначно.


← →
Zacho ©   (2003-05-05 18:32) [15]


> MsGuns © (05.05.03 18:23)

Хм.. Не замечал. Может он тормозит, если включены футеры или еще какая-нибудь дребедень ?


← →
MsGuns ©   (2003-05-05 18:49) [16]

>Zacho © (05.05.03 18:32)

Opps... Похоже, я спутал с RxLib - вот там навалено столько на бедный грид (в частности на события связанного источника данных), что уши морским узлом завязываются ;))


← →
Dred2k ©   (2003-05-05 19:18) [17]


> MsGuns © (05.05.03 18:49)

Работаю именно с ним. Никаких тормозов нет. Если самому, конечно, на всякие хорошие события всякого разного не написать. Народ, порой, в него по 40-50 тыщ. выбирает с сортировкой, а потом по истории всяких там прикладных вещиц последовательно по Locate лазит (так им удобнее). Правда, при Locate всякие Before...AfterScroll и все такое я на время отрубаю. Так что...


← →
Ruff   (2003-05-06 10:43) [18]


> Нет обработчика события OnCalcFields?

Нет, но был OnAfterScroll, хотя я пробовал его убрать - не помогло


> А может он у тебя еще и "живой"?

Да, это действительно сильно влияет?



> Я призываю сократить объем получаемых запросом данных.

Нужно, чтобы юзерь мог перемещаться по всей таблице. Или это реализуется иначе?


> может у тебя там куча удаленных записей?

Нет, табличка нулёвая, только что сконверченная


> а еще вопрос DBGrid это именно DBGrid?

Да, все только стандартное.


← →
Dred2k ©   (2003-05-06 10:50) [19]


> Ruff (06.05.03 10:43)


> > А может он у тебя еще и "живой"?
> Да, это действительно сильно влияет?


Очень сильно. Вообще, живость ущербна. Используй неживой запрос, CachedUpdates и UpdateSQL. Будет нормально...


← →
Ruff   (2003-05-06 10:57) [20]


> Dred2k ©

С тобой по аське можно связаться?
Моя - 311805858



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

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.013 c
8-83615
IvanUdalov@mail.ru
2003-02-10 12:24
2003.05.26
генерация звука


3-83413
Salvator
2003-05-05 09:20
2003.05.26
Нужна мат. модель БД


1-83468
Grac
2003-05-15 10:47
2003.05.26
Перевод в Integer


4-83802
pet
2003-03-15 19:30
2003.05.26
Hide in Tray


7-83781
Ик сик
2003-03-25 15:33
2003.05.26
Можно ли читать данные из сом-порта, открытого другой программой?




   Наверх