|
|
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Коллеги, сегодня у меня (IDS 9.40.FC7) возникла проблема с запросом по убывающему уникальному индексу. Заключается она в том, что если я явно указываю сортировку по убыванию - запрос выполняется по полдня, а если не указываю - то сразу. Таблица секционирована - три секции. Кто-нибудь сталкивался с такими проблемами? Вот какие запросы и таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. Вот планы выполнения запросов: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 16:41 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Да, кстати - ВСЕХ С ПРАЗДНИКАМИ! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 16:42 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
select {+first_rows} first 1 bid,mtmtime index desc по моему нафиг не нужно в этом случае, а может и вообще. ----------------------------------------------------------------------------------------------------------------------------------------- нужно делать то что нужно, а то что не нужно -- делать не нужно (перефразируя В-Пуха). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 16:49 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Ничего удивительного. Индекс у тебя: -- вот индекс: create unique index pk_mtmhistory on marks:mtmhistory ( instriid, mtmtime desc ) ---------------------- А вот запрос: -- этот запрос работает вечность: select first 1 bid,mtmtime from marks:mtmhistory where instriid = 555 and mtmtime < today order by mtmtime desc -------------------------- order by по второму полю индекса. Во втором запросе, кстати, нет order by, поэтому и быстро. Доваь еще индекс по полю mtmtime для первого запроса или поле instriid в order by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 16:51 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Александр Федоренко.... order by по второму полю индекса. Во втором запросе, кстати, нет order by, поэтому и быстро. Доваь еще индекс по полю mtmtime для первого запроса или поле instriid в order by+1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 16:52 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Александр Федоренко order by по второму полю индекса. Во втором запросе, кстати, нет order by, поэтому и быстро. Доваь еще индекс по полю mtmtime для первого запроса или поле instriid в order by Александр, спасибо за помощь! Однако, если я делаю запрос с указанием instriid в order by Код: plaintext 1. 2. 3. 4. Получается, либо делать, как написал Денис (т.е. хинт --+first_rows), либо перезалить индекс на новый, так? (видимо, последнее более просто...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 17:06 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
softic Получается, либо делать, как написал Денис (т.е. хинт --+first_rows), либо перезалить индекс на новый, так? (видимо, последнее более просто...)Чего перезалить, куда, не поможет. first_rows это не хинт, это необходимость, субд не может догадаться что вы хотите только первые строки. Если не нравится хинт, можно "set optimization first_rows" выполнить перед запросом, а после all_rows. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 17:11 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Ну хинт на первые записи по-любому не помешает, раз тебе только первая запись и нужна. Я вот не уверен, что без order by ВСЕГДА нужный результат ты получишь. Если только через дерективы принудительно использовать индекс заставить. Да и то неправильно по-моему. А при добавлении в ордер бай первого поля план выполнения смотрел? Статистику, кстати, обновлял давно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 17:14 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Александр Федоренко Я вот не уверен, что без order by ВСЕГДА нужный результат ты получишь. Если Не получишь, только order by гарантирует тот порядок который нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 17:16 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Любопытно, какая стоимость при +first_rows и вообще план? ----------------------------------------------------------------------------------------------------------------------------------------- нужно делать то что нужно, а то что не нужно -- делать не нужно (перефразируя В-Пуха). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 17:30 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисЛюбопытно, какая стоимость при +first_rows и вообще план? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 17:43 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис Александр Федоренко Я вот не уверен, что без order by ВСЕГДА нужный результат ты получишь. Если Не получишь, только order by гарантирует тот порядок который нужен. Денис, даже если всегда используется отсортированный индекс? Про перезаливку индекса - я имел ввиду заменить текущий индекс на ascending индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 17:46 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Александр ФедоренкоНу хинт на первые записи по-любому не помешает, раз тебе только первая запись и нужна. Я вот не уверен, что без order by ВСЕГДА нужный результат ты получишь. Если только через дерективы принудительно использовать индекс заставить. Да и то неправильно по-моему. А при добавлении в ордер бай первого поля план выполнения смотрел? Статистику, кстати, обновлял давно? План смотрел, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Статистику обновлял только-только, HIGH MODE по индексированным полям. Даже проверял (#dbschema -hd) - статистика собрана корректно. Может, и не правильно, но (насколько я знаю) выборка при index-scan сортируется в соответствии с порядком сортировки полей индекса. Разве это не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 17:52 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисЛюбопытно, какая стоимость при +first_rows и вообще план? Денис, меня очень интересует вопрос - почему запрос с ORDER BY при возрастающем индексе работал отлично? Т.е. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. Может есть какие-нибудь идеи, почему такой индекс быстро давал результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 18:55 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
softic Может, и не правильно, но (насколько я знаю) выборка при index-scan сортируется в соответствии с порядком сортировки полей индекса. Разве это не так? Нет. Порядок гарантируется только использованием ORDER BY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 22:45 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
softic... Может, и не правильно, но (насколько я знаю) выборка при index-scan сортируется в соответствии с порядком сортировки полей индекса. Разве это не так?Вас обманули. Используйте order by. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 08:28 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
softic ...Может есть какие-нибудь идеи, почему такой индекс быстро давал результат?Нет никакой разницы как обходить битри-дерево в сторону возрастания или в сторону убывания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 08:30 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Нда, понять это невозможно, еще более невозможно объяснить это техподдержке. Тут Квизатц Хадерах нужен. Надо слепить синтетический повторяемый тест и написать в сди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 08:36 |
|
||
|
problems with descending unique index
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Нда, понять это невозможно, еще более невозможно объяснить это техподдержке. Тут Квизатц Хадерах нужен. Надо слепить синтетический повторяемый тест и написать в сди. Денис, спасибо большое за помощь! Думаю, вопрос пока закрыт, когда будут результаты запроса в техподдержку - дам знать (скорее всего, это будет нескоро). Пока что есть только одна идея - глюк оптимизатора при использовании фрагментирования на таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 10:30 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=33704658&tid=1608683]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 424ms |

| 0 / 0 |
