Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.10.31;
Скачать: [xml.tar.bz2];

Вниз

навигация по TADOStoredProc...   Найти похожие ветки 

 
istok   (2010-08-04 20:32) [0]

TADOStoredProc вернул 26000 записей, навигация по ним (цикл с Next) работает оч медленно.
т.е. если сделать пустой цикл перебирающий все записи, это займет секунд 10.

есть ли варианты увеличения скорости навигации без уменьшения кол-ва записей?


 
sniknik ©   (2010-08-04 20:39) [1]

> есть ли варианты увеличения скорости навигации без уменьшения кол-ва записей?
убрать ошибки в программе.
и заменить TADOStoredProc на TADODataSet.

первое для скорости, второе чтобы отвечали...


 
Anatoly Podgoretsky ©   (2010-08-05 09:32) [2]

Что ты соотворил с машиной.


 
Sergey13 ©   (2010-08-05 10:10) [3]

> [0] istok   (04.08.10 20:32)

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


 
istok   (2010-08-05 11:29) [4]


> первое для скорости, второе чтобы отвечали...


ошибки там нет, я замеряю скорость навигации по датасету и вижу что она очень низка.

простой цикл
first
while not eof do next;
и дело именно в next, т.к. если заменить eof на аналог (самому считать записи), то всё равно 10сек бежит по 26К записей. при том что весь запрос длится 2сек и любые другие манипуляции с 26К объектами (из датасета гружу записи в свои объекты, потом отрисовываю) - меньше секунды.

вобщем, навигация по датасету - узкое место и оно явно можно работать на порядок быстрее. может есть другие компоненты или подходы...


> Что ты соотворил с машиной.


не понимать


> Еще как вариант. Если уж есть процедура на сервере, то почему
> бы и цикл с обработкой не организовать там же, не вытягивая
> все записи на клиента?
>
>


это построение отчета для большого периода времени при большом числе исходных данных. хочется чтоб работало как можно шустрее. при малых исходных данных конечно скорость уже не так критична. но то что всё оч быстро работает в скл и отрисовке и изза датасета, у которого всё в памяти, мы имеем тормоза - возмущает.


 
Sergey13 ©   (2010-08-05 12:09) [5]

> [4] istok   (05.08.10 11:29)
> это построение отчета для большого периода времени при большом числе исходных данных

Ну и? Тебе все 26000 строк надо напечатать? Или полстраницы с итоговыми цифирями?

> мы имеем тормоза - возмущает.

Вы имеете, а не мы. 8-)


 
sniknik ©   (2010-08-05 12:41) [6]

> ошибки там нет
ошибки это не только синтаксические на которые указывает компилятор но и логические, и от незнания фигню писать...

> , я замеряю скорость навигации по датасету и вижу что она очень низка.
> простой цикл
> first
> while not eof do next;
вот тут дело скорее всего в не отключенных контролах, возможно в типе курсора "серверный" и значит + работа сети при доставании очередных записей, может еще в обработке событий датасета которые отсутствуют в этом простом цикле, но тем не менее могут присутствовать (и влиять) в программе...

> и дело именно в next,
не делай поспешных выводов, и тебя не назовут идиотом.

> может есть другие компоненты или подходы...
велосипедов полно. но с ними также нужно уметь работать, а документированы они хуже.


 
istok   (2010-08-05 12:58) [7]


> вот тут дело скорее всего в не отключенных контролах, возможно
> в типе курсора "серверный" и значит + работа сети при доставании
> очередных записей, может еще в обработке событий датасета
> которые отсутствуют в этом простом цикле, но тем не менее
> могут присутствовать (и влиять) в программе...


да, DisableControls помог, нашли статью по теме: http://edn.embarcadero.com/kr/article/27790

хотя контролов никаких на этот датасет не завязано, после DisableControls всё стало работать намного быстрее.


 
Anatoly Podgoretsky ©   (2010-08-05 13:08) [8]

> istok  (05.08.2010 11:29:04)  [4]

Удали все и воссоздай по новому. Со старыми компонентами ты что то натворил.


 
Anatoly Podgoretsky ©   (2010-08-05 13:10) [9]

> istok  (05.08.2010 12:58:07)  [7]

> DisableControls помог
как бы противоречат
> контролов никаких на этот датасет не завязано
лруг другу.


 
istok   (2010-08-05 13:15) [10]

а через RecordSet еще быстрее заработало)) теперь то что надо..


> > DisableControls помог
> как бы противоречат
> > контролов никаких на этот датасет не завязано
> лруг другу.



> Удали все и воссоздай по новому. Со старыми компонентами
> ты что то натворил.


нет там контролов, адошные компоненты в коде создаются и уничтожаются (storedProc := TADOStoredProc.Create(nil);)


 
sniknik ©   (2010-08-05 14:47) [11]

Anatoly Podgoretsky ©   (05.08.10 13:10) [9]
>> DisableControls помог
> как бы противоречат
не, там все нормально, проверки тоже время занимают, даже если того на, что проверяешь нету.
при отключенных контролах такая проверка одна, а когда уже "прошло унутрь" то на каждый переход между записями... разница есть.



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

Форум: "Начинающим";
Текущий архив: 2010.10.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
15-1279631689
ocean
2010-07-20 17:14
2010.10.31
Курсы валют


2-1280939572
istok
2010-08-04 20:32
2010.10.31
навигация по TADOStoredProc...


2-1280660629
vegarulez
2010-08-01 15:03
2010.10.31
Вопрос про TRegExpr.


11-1225808182
Yury Sidorov
2008-11-04 17:16
2010.10.31
Выпущен KOL-CE 2.80.2


8-1207394736
altaris
2008-04-05 15:25
2010.10.31
Редактор GIMP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский