powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Вкладка Данные в таблице
13 сообщений из 13, страница 1 из 1
Вкладка Данные в таблице
    #39655576
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если в таблице первичный ключ использует индекс по убыванию, то в окне таблицы при переходе на закладку Data наблюдаются тормоза.
Вот метаданные по PK:
Код: plaintext
1.
2.
ALTER TABLE KN_OKSUMMARY ADD CONSTRAINT PK_KN_OKSUMMARY PRIMARY KEY (OKS_FROM_KC_ID, OKS_DATE_BEGIN)
USING DESCENDING INDEX PK_KN_OKSUMMARY;

А вот запрос, который работает при переходе на вкладку Data:
Код: plaintext
1.
select * from KN_OKSUMMARY
order by OKS_FROM_KC_ID,OKS_DATE_BEGIN

Таблица большая, поэтому обратная сортировка приводит к тормозам.
Предлагаю учитывать направление сортировки первичного ключа при открытии таблицы.
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39655735
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каким образом учитывать? Не сортировать вообще или сортировать в обратном порядке?
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39656083
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpert,

Либо убрать Order by полностью, либо добавлять desc если к PK привязан индекс с descending
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39656095
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AtanasЛибо убрать Order by полностью, либо добавлять desc если к PK привязан индекс с descending

Какой-то еврейский ответ :)
Я спросил "Не сортировать вообще или сортировать в обратном порядке?".
Ты ответил "Не сортировать вообще или сортировать в обратном порядке".
Ушел думу думать...
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39656174
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

по умолчанию правильней второй вариант. Но иногда имеет смысл не сортировать вообще, но это должно относится не только к PK с обратной сортировкой ключей, но и прямой. Просто делать отключаемым
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39656293
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисПросто делать отключаемым

Оно отключается в настройках редактора таблиц.
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39656594
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpertAtanasЛибо убрать Order by полностью, либо добавлять desc если к PK привязан индекс с descending

Какой-то еврейский ответ :)
Я спросил "Не сортировать вообще или сортировать в обратном порядке?".
Ты ответил "Не сортировать вообще или сортировать в обратном порядке".
Ушел думу думать...

Я ответил на первый вопрос. По второму, любой из озвученных вариантов устроил бы. Просто не знаю зачем используется order by. Если он нужен, значит нужно указывать сортировку соответствующую индексу.
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39656607
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpertСимонов ДенисПросто делать отключаемым

Оно отключается в настройках редактора таблиц.

Ага, нашел галку "Order data by primary key if exist".
Если отмечена, то предлагаю учитывать ascending/descending, если не отмечена, то вообще order by не использовать.
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39656636
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AtanasАга, нашел галку "Order data by primary key if exist".
Если отмечена, то предлагаю учитывать ascending/descending, если не отмечена, то вообще order by не использовать.

Кстати, оказалось, что сортировка таки учитывается. Но только если ключ из одного поля состоит.
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39658057
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpertAtanasАга, нашел галку "Order data by primary key if exist".
Если отмечена, то предлагаю учитывать ascending/descending, если не отмечена, то вообще order by не использовать.

Кстати, оказалось, что сортировка таки учитывается. Но только если ключ из одного поля состоит.

А для более одного можно реализовать?
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39658153
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AtanasА для более одного можно реализовать?

Во вчерашнем билде должно для любого количества полей в ключе работать.
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39661989
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpertAtanasА для более одного можно реализовать?

Во вчерашнем билде должно для любого количества полей в ключе работать.

Проверил, но получилось не совсем так как хотелось бы:

Если убывающий индекс по нескольким полям (PK_KN_OPERKRED), то нужно после каждого поля в ORDER BY писать DESC, иначе используется умолчательный ASCENDING для полей перечисленных первыми, и все превращается опять в сортировку.

Сейчас запрос генерируется так.
Код: plaintext
1.
2.
3.
4.
SELECT * FROM KN_OPERKRED
ORDER BY OK_FROM_OL_ID, OK_NUMBER, OK_FROM_KC_ID DESC

PLAN SORT ((KN_OPERKRED NATURAL))


Если же указать desc каждому полю, то начинает использоваться индекс по PK
Код: plaintext
1.
2.
3.
4.
SELECT * FROM KN_OPERKRED
ORDER BY OK_FROM_OL_ID DESC, OK_NUMBER DESC, OK_FROM_KC_ID DESC

PLAN (KN_OPERKRED ORDER PK_KN_OPERKRED)
...
Рейтинг: 0 / 0
Вкладка Данные в таблице
    #39661992
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия 2018.6.8.1
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Вкладка Данные в таблице
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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