Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
29.09.2016, 10:40
|
|||
---|---|---|---|
Повтор полей в сортировке и группировке |
|||
#18+
FB 2.5.6. Запрос Код: sql 1. 2. 3. 4. 5. 6.
дает план: Код: plaintext
Запрос Код: sql 1. 2. 3. 4. 5. 6. 7.
дает план Код: plaintext
Вопросы: 1. Имеет ли смысл делать ли тикет, чтобы оптимизатор убирал повторы условий сортировки и группировки? 2. Является ли багом, что оптимизатор при втором условии отбрасывает индекс и переходит на натуральный перебор? P.S. Проверил другое второе поле: Код: sql 1. 2. 3. 4. 5. 6. 7.
Все равно переходит на NATURAL: Код: plaintext
Хотя тут очевидно, что надо оставить сортировку по индексу и досортировать натуралом по другим полям. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.09.2016, 10:42
|
|||
---|---|---|---|
Повтор полей в сортировке и группировке |
|||
#18+
CyberMaxХотя тут очевидно, что надо оставить сортировку по индексу и досортировать натуралом по другим полям.А что такое - досортировать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.09.2016, 10:48
|
|||
---|---|---|---|
|
|||
Повтор полей в сортировке и группировке |
|||
#18+
CyberMaxВопросы: 1. Имеет ли смысл делать ли тикет, чтобы оптимизатор убирал повторы условий сортировки и группировки? 2. Является ли багом, что оптимизатор при втором условии отбрасывает индекс и переходит на натуральный перебор? 1. Да, но пример ты кривой привёл. Это скорее похоже на описку того кто писал запрос. А вот в других случаях надо, например группировка и сортировка по одним и тем же полям, или когда присутствует CTE с внутренней сортировкой, а потом ещё раз неявно внешняя сортировка, или когда есть сортировка и MERGE JOIN, или присутствуют оконные функции с одним и тем же окном. 2. Нет. Далеко не факт что сортировка сначала по индексу, а потом так называемая "досортировка" будет дешевле. Скорее даже наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.09.2016, 10:52
|
|||
---|---|---|---|
|
|||
Повтор полей в сортировке и группировке |
|||
#18+
hvladА что такое - досортировать ? я так понял что он хочет сначала собрать одинаковые значения по R.RDB$RELATION_NAME, а потом их отсортировать по R.RDB$FORMAT, потом взять следующие значения с одинаковым R.RDB$RELATION_NAME и снова отсортировать. ИХМО, намного дороже выйдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.09.2016, 10:55
|
|||
---|---|---|---|
Повтор полей в сортировке и группировке |
|||
#18+
hvlad, Денис выше собственно ответил. Но насчет дороже - не согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.09.2016, 10:57
|
|||
---|---|---|---|
Повтор полей в сортировке и группировке |
|||
#18+
Симонов Денис1. Да, но пример ты кривой привёл. Это скорее похоже на описку того кто писал запрос Да, я в том числе про описку и имел ввиду. Имхо, тут должно быть либо игнорирование, либо исключение о повторе поля сортировки/группировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.09.2016, 10:59
|
|||
---|---|---|---|
Повтор полей в сортировке и группировке |
|||
#18+
Добавлю еще. При сортировке по ПК или по полям, которые входят в уникальный ключ, и при наличии других полей для сортировке, FB должен либо игнорить их, либо выдавать исключение, так как они гарантированно никак не повлияют на результат этой самой сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.09.2016, 11:05
|
|||
---|---|---|---|
Повтор полей в сортировке и группировке |
|||
#18+
CyberMaxНо насчет дороже - не согласен.Ты уже посчитал ? Покажешь рассчёты ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.09.2016, 11:06
|
|||
---|---|---|---|
Повтор полей в сортировке и группировке |
|||
#18+
CyberMaxПри сортировке по ПК или по полям, которые входят в уникальный ключ, и при наличии других полей для сортировке, FB должен либо игнорить ихЭто единственная мысль, которую имеет смысл додумать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=40&mobile=1&tid=1561954]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 268ms |
total: | 412ms |
0 / 0 |