Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Вкладка Данные в таблице / 13 сообщений из 13, страница 1 из 1
05.06.2018, 13:50
    #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
05.06.2018, 16:14
    #39655735
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вкладка Данные в таблице
Каким образом учитывать? Не сортировать вообще или сортировать в обратном порядке?
...
Рейтинг: 0 / 0
06.06.2018, 08:41
    #39656083
Atanas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вкладка Данные в таблице
IBExpert,

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

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

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

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

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

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

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

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

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

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

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

Во вчерашнем билде должно для любого количества полей в ключе работать.
...
Рейтинг: 0 / 0
18.06.2018, 14:04
    #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
18.06.2018, 14:07
    #39661992
Atanas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вкладка Данные в таблице
Версия 2018.6.8.1
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Вкладка Данные в таблице / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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