Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
RaFaeL писал(а): ↑25 Январь 2022, 14:47
У нас выгружаются через DynaLib N записей с какой-то по какую-то, сколько на экран влазит, SQL-запросом, без курсоров. Работает очень быстро.
Далась вам эта постраничная загрузка! В чём её смысл? Есть сто тысяч записей. Это ~5000 страниц. Кто просматривает и листает эти 5000 страниц?
Ram disk скорее всего не поможет. Это устаревшая технология. Если оперативной памяти достаточно для размещения всей базы, то винда ее и так закеширует. Ssd поможет на этапе начального чтения с диска. Ну и если база не помещается в оперативной памяти. Процик помощнее. Писали, что i9 может дать прирост скорости на вычислительных задачах порядка 2.5 раз относительно i7. Может, еще вычисления как-то распараллелить.
kreator писал(а): ↑25 Январь 2022, 15:07
Далась вам эта постраничная загрузка! В чём её смысл? Есть сто тысяч записей. Это ~5000 страниц. Кто просматривает и листает эти 5000 страниц?
Смысл в том, чтобы быстро, очень быстро открылось окно
Никто не будет просматривать тысячи страниц.
Но если Вы запросите у SQL сервера записи по москвичам с именем "Вазген" - то он их Вам вернёт.
И для открытия списка придётся получить весь результат ...
RaFaeL писал(а): ↑25 Январь 2022, 15:28
Смысл в том, чтобы быстро, очень быстро открылось окно
Оно и с файловой загрузкой быстро откроется. Если записей не десятки тысяч.
Игорь Столяров писал(а): ↑25 Январь 2022, 15:50
Никто не будет просматривать тысячи страниц.
Но если Вы запросите у SQL сервера записи по москвичам с именем "Вазген" - то он их Вам вернёт.
И для открытия списка придётся получить весь результат ...
Можно запросить и россиян с фамилией "Иванов" вместе с умершими за 200 лет. Понятно - панацеи нет. В зависимости от задачи надо ограничивать. ИМХО, постраничная загрузка - "дуть на воду". Клиент отрабатывает супербыстро, зато сервер дико в напряге. Рекомендацию работать с сервером большими пакетами никто не отменял.
kreator писал(а): ↑25 Январь 2022, 17:22
Оно и с файловой загрузкой быстро откроется. Если записей не десятки тысяч.
Не откроется оно быстро. На каждую запись еще джойнов куча, типа выводим накладные, но нужно также вывести в список контрагента, менеджера, склад и еще полно всего. Пользователю что, сидеть ждать пока у него все это прогрузится? Моментально всё должно быть
Конечно один, и сколько этот запрос будет выполняться если нужно открыть реестр документов с 10к записей и десятком джойнов? А ведь еще потом данные по сети перегонять и в лист выводить. А окно должно открываться максимум за секунду
Игорь Столяров писал(а): ↑25 Январь 2022, 15:50
Никто не будет просматривать тысячи страниц.
Но если Вы запросите у SQL сервера записи по москвичам с именем "Вазген" - то он их Вам вернёт.
И для открытия списка придётся получить весь результат ...
Нет! Все совсем не так.
Если попросите все, то вернет все.
А если попросите 20 из всего рекордсета, то вернет 20.
Попросите следующие 20, отдаст следующие 20.
Учите матчасть!
Я вот показывал видео работы моего поделия - https://yadi.sk/i/yTr1ygsvO5Ow-A. Посмотрите справочник объектов (где-то в середине видео). На экране дерево по одному файлу (на первой закладке), на других броуз по этой же таблице. При открытии окна оба грузятся по полной. В каждом списке по ~5000 записей, итого ~10000. Посмотрите как работает инкрементный локатор. Какие-то миллисекунды.
Игорь Столяров писал(а): ↑25 Январь 2022, 15:50
Никто не будет просматривать тысячи страниц.
Но если Вы запросите у SQL сервера записи по москвичам с именем "Вазген" - то он их Вам вернёт.
И для открытия списка придётся получить весь результат ...
Нет! Все совсем не так.
Если попросите все, то вернет все.
А если попросите 20 из всего рекордсета, то вернет 20.
Попросите следующие 20, отдаст следующие 20.
Учите матчасть!
Как вы следующие попросите? А откуда вы узнаете сколько всего? Предварительно количество подсчитаете?
Игорь Столяров писал(а): ↑25 Январь 2022, 15:50
Никто не будет просматривать тысячи страниц.
Но если Вы запросите у SQL сервера записи по москвичам с именем "Вазген" - то он их Вам вернёт.
И для открытия списка придётся получить весь результат ...
Нет! Все совсем не так.
Если попросите все, то вернет все.
А если попросите 20 из всего рекордсета, то вернет 20.
Попросите следующие 20, отдаст следующие 20.
Учите матчасть!
Как вы следующие попросите? А откуда вы узнаете сколько всего? Предварительно количество подсчитаете?
мне не нужно знать сколько всего записей, я буду запрашивать до тех пор пока SQL-сервер будет мне возвращать их.
окончанием будет событие, когда сервер вернет мне меньше записей, чем я запрошу