SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Сортировка в большом количестве записей
Сортировка в большом количестве записей [сообщение #5307] Tue, 06 August 2024 12:12 Переход к предыдущему сообщению
crazypiggy в настоящее время не в онлайне  crazypiggy
Сообщений: 2
Зарегистрирован: August 2024
Junior Member
Добрый день. У меня есть три таблицы OBJECTS (ID ,  PARENT_ID , FULL_NAME, SHORT_NAME, LEVEL_ID,  FIAS_GUID) в которой хранятся адреса до уровня улицы, переулок и т.д.
HOUSES (ID, OBJECTS_ID, NUM, KORP) таблица домов привязанных к OBJECTS и абонентов ABONENTS (ID, HOUSES_ID, APARTMENT, ROOM, MANAGER_ID)
В таблице ABonents количество записей около 1.5 млн. Мне надо сделать получение записи по порядку. Но если я делаю order by FULL_NAME, NUM, KORP, APARTMENT это занимает достаточно большое время.
Все записи мне тоже не нужны сразу, надо по одной. Подскажите как правильно реализовать проход по порядку по этому набору данных с минимальным временем. Спасибо.
with recursive OBJ (ID, FULL_NAME, PARENT_ID, LEVEL_ID) as
 (select id, FULL_NAME, PARENT_ID, LEVEL_ID from objects where parent_id is null
 union all
 select obj_l.id, obj_l.FULL_NAME, obj_l.PARENT_ID, obj_l.LEVEL_ID from objects obj_l
       join obj on obj_l.parent_ID=obj.id)
select  * from obj
 join houses on houses.objects_id=obj.id
 join abonents on abonents.houses_id=houses.id 
order by LEVEL_ID, FULL_NAME, NUM, KORP, APARTMENT, ROOM
Это я так пытаюсь получить весь набор данных а потом уже по нему проходить. Но так наверное не очень хорошо и скорость невысокая.
 

[Обновления: Tue, 06 August 2024 12:34]

Известить модератора

 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: Вышел Firebird 5.0.1
Следующая тема: Установка Firebird 5.0 под Alt Linux
Переход к форуму:
  


Текущее время: Thu Sep 19 19:50:09 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01102 секунд