powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Повтор полей в сортировке и группировке
9 сообщений из 9, страница 1 из 1
Повтор полей в сортировке и группировке
    #39317587
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FB 2.5.6.

Запрос
Код: sql
1.
2.
3.
4.
5.
6.
SELECT
    R.RDB$RELATION_NAME
FROM
    RDB$RELATIONS R
ORDER BY
    R.RDB$RELATION_NAME


дает план:
Код: plaintext
PLAN (R ORDER RDB$INDEX_0)

Запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
    R.RDB$RELATION_NAME
FROM
    RDB$RELATIONS R
ORDER BY
    R.RDB$RELATION_NAME,
    R.RDB$RELATION_NAME


дает план
Код: plaintext
PLAN SORT ((R NATURAL))
Такое же изменение плана при группировке.

Вопросы:
1. Имеет ли смысл делать ли тикет, чтобы оптимизатор убирал повторы условий сортировки и группировки?
2. Является ли багом, что оптимизатор при втором условии отбрасывает индекс и переходит на натуральный перебор?

P.S. Проверил другое второе поле:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
    R.RDB$RELATION_NAME
FROM
    RDB$RELATIONS R
ORDER BY
    R.RDB$RELATION_NAME,
    R.RDB$FORMAT


Все равно переходит на NATURAL:
Код: plaintext
PLAN SORT ((R NATURAL))

Хотя тут очевидно, что надо оставить сортировку по индексу и досортировать натуралом по другим полям.
...
Рейтинг: 0 / 0
Повтор полей в сортировке и группировке
    #39317594
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxХотя тут очевидно, что надо оставить сортировку по индексу и досортировать натуралом по другим полям.А что такое - досортировать ?
...
Рейтинг: 0 / 0
Повтор полей в сортировке и группировке
    #39317603
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxВопросы:
1. Имеет ли смысл делать ли тикет, чтобы оптимизатор убирал повторы условий сортировки и группировки?
2. Является ли багом, что оптимизатор при втором условии отбрасывает индекс и переходит на натуральный перебор?

1. Да, но пример ты кривой привёл. Это скорее похоже на описку того кто писал запрос. А вот в других случаях надо, например группировка и сортировка по одним и тем же полям, или когда присутствует CTE с внутренней сортировкой, а потом ещё раз неявно внешняя сортировка, или когда есть сортировка и MERGE JOIN, или присутствуют оконные функции с одним и тем же окном.

2. Нет. Далеко не факт что сортировка сначала по индексу, а потом так называемая "досортировка" будет дешевле. Скорее даже наоборот.
...
Рейтинг: 0 / 0
Повтор полей в сортировке и группировке
    #39317607
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladА что такое - досортировать ?

я так понял что он хочет сначала собрать одинаковые значения по R.RDB$RELATION_NAME, а потом их отсортировать по R.RDB$FORMAT, потом взять следующие значения с одинаковым R.RDB$RELATION_NAME и снова отсортировать.

ИХМО, намного дороже выйдет.
...
Рейтинг: 0 / 0
Повтор полей в сортировке и группировке
    #39317609
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

Денис выше собственно ответил.

Но насчет дороже - не согласен.
...
Рейтинг: 0 / 0
Повтор полей в сортировке и группировке
    #39317611
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис1. Да, но пример ты кривой привёл. Это скорее похоже на описку того кто писал запрос
Да, я в том числе про описку и имел ввиду.
Имхо, тут должно быть либо игнорирование, либо исключение о повторе поля сортировки/группировки.
...
Рейтинг: 0 / 0
Повтор полей в сортировке и группировке
    #39317617
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю еще. При сортировке по ПК или по полям, которые входят в уникальный ключ, и при наличии других полей для сортировке, FB должен либо игнорить их, либо выдавать исключение, так как они гарантированно никак не повлияют на результат этой самой сортировки.
...
Рейтинг: 0 / 0
Повтор полей в сортировке и группировке
    #39317621
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxНо насчет дороже - не согласен.Ты уже посчитал ? Покажешь рассчёты ?
...
Рейтинг: 0 / 0
Повтор полей в сортировке и группировке
    #39317622
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxПри сортировке по ПК или по полям, которые входят в уникальный ключ, и при наличии других полей для сортировке, FB должен либо игнорить ихЭто единственная мысль, которую имеет смысл додумать :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Повтор полей в сортировке и группировке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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