powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема с планом запроса
3 сообщений из 3, страница 1 из 1
Проблема с планом запроса
    #39455763
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FB 2.5.6. Есть таблица:
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE INF$ABONENT$BT (
    ID                    D_KEY NOT NULL /* D_KEY = INTEGER */,
    ID_ABONENT            D_KEY NOT NULL /* D_KEY = INTEGER */,
    ID_SERVICE            D_KEY NOT NULL /* D_KEY = INTEGER */,
    ID_PERIOD             D_KEY NOT NULL /* D_KEY = INTEGER */)



У нее уникальный индекс (по абоненту, услуге, периоду)
Код: sql
1.
ALTER TABLE INF$ABONENT$BT ADD CONSTRAINT UNQ_INF$ABONENT$BT UNIQUE (ID_ABONENT, ID_SERVICE, ID_PERIOD);



Запрос 1:
Код: sql
1.
SELECT MIN(BT.ID_PERIOD) FROM INF$ABONENT$BT BT WHERE (BT.ID_ABONENT = :ID_ABONENT) AND (BT.ID_SERVICE = :ID_SERVICE)


Код: plaintext
PLAN (BT ORDER FK_INF$ABONENT$BT_PERIOD INDEX (UNQ_INF$ABONENT$BT))
Время выполнения почти 11 секунд.

Запрос 2:
Код: sql
1.
SELECT MIN(BT.ID_PERIOD + 0) FROM INF$ABONENT$BT BT WHERE (BT.ID_ABONENT = :ID_ABONENT) AND (BT.ID_SERVICE = :ID_SERVICE)


Код: plaintext
PLAN (BT INDEX (UNQ_INF$ABONENT$BT))
Время выполнения 0 мсек.

Можно ли как-то научить оптимизатор не использовать индекс по периоду? Это не единственный случай запроса, когда применение дополнительного индекса очень замедляет его выполнение.
...
Рейтинг: 0 / 0
Проблема с планом запроса
    #39455798
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

в 3.0 этот запрос попробуй. Там скорее всего немного другой план будет не как в случае 1 и 2.
...
Рейтинг: 0 / 0
Проблема с планом запроса
    #39455804
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

В 3.0.2 план:
Код: plaintext
PLAN (BT ORDER UNQ_INF$ABONENT$BT)

Судя по плану, сервер и отбирает строки, и сортирует сразу. Тогда вопрос снимается.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема с планом запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]