Форум » [x]Harbour » Какой подход быстрее ? » Ответить

Какой подход быстрее ?

Dima: [pre2] * datamas хэш массив с кодами организаций * zur база из которой делаем выборку * база zur имеет управляющий индекс по полю kod_kl 1. for each elem in datamas if zur->(dbseek(elem)) zur->(dbOrderInfo(DBOI_SCOPETOP,,,elem)) zur->(dbOrderInfo(DBOI_SCOPEBOTTOM,,,elem)) do while !zur->(eof()) * тут пишу во временную базу zur->(dbskip()) enddo zur->(dbOrderInfo(DBOI_SCOPECLEAR)) endif next 2. zur->(dbgotop()) do while !zur->(eof()) if !HB_HHASKEY(datamas,zur->kod_kl) zur->(dbskip()) loop endif * тут пишу во временную базу zur->(dbskip()) enddo [/pre2] Сейчас работаю по варианту 1.

Ответов - 4

Haz: Dima пишет: Сейчас работаю по варианту 1. При большой базе и заведомо меньшем массиве вариант 1 быстрее . По варианту 2 нужно один раз полностью проскипать всю базу

Dima: Haz пишет: При большой базе и заведомо меньшем массиве вариант 1 быстрее . Мы с тобой одинаково думаем Игорь.

Haz: Dima пишет: Мы с тобой одинаково думаем Почти одинаково поскольку я подсел на ADS то выбрал бы вариант 3 SELECT * INTO ...FROM ... WHERE kod_kl IN ( ... ) Думаю еще быстрее было бы т.к. все на сервере


Dima: Haz я тоже на ADS. такой вариант мне не подходит так как надо юзать словарь базы данных.



полная версия страницы