|
|
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Поскольку Beta уже вышла можно про оптимизатор спрашивать. Имеем такой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. План и статистика в Fb3 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. В Fb2.5 понятное дело всё плохо: План и статистика в Fb2.5 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Но только стоит разкомментировать условие WHERE WEBUSER.LOGIN = 'Abrek', получаем всё наоборот: План и статистика в Fb3 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. План и статистика в Fb2.5 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Изменяем запрос на такой Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. и получаем в FB3 Код: 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. Т.е. трёшка не понимает, когда надо отказаться от навигации по индексу, а когда нет. Причём без ограничителя ROWS оценка идёт правильно и навигация по индексу заменяется внешней сортировкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 19:23 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
ROWS считается хинтом и отключает оценку стоимости в пользу принудительного использования плана ORDER. Как видим, это не всегда является удачной мыслью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 20:48 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
dimitr, это я уже понял. Просто думал может к релизу планируются изменения на этот счёт. Ещё хотел спросить. Если в плане будет отображаться стоимостная оценка и кардинальность, то можно для индексов писать ещё и селективность? Если эти сведения будут проще понять почему оптимизатор выбрал именно такой план. Тем более что селективность самого индекса верна только для равенства, а для остальных сравнений используются некоторые константы, вот пусть они и выводятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 23:52 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Симонов Денис> в плане ... можно для индексов писать ещё и селективность? Кстати, да, интересная идея, +1. При чём не только из-за констант и пр., но и поскольку селективность меняется. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 00:33 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, Кстати, вопрос светочам (бо неуч, каюсь - 3 сервера в голове удержать одновременно ;( ) - селективность индекса пересчитывается когда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 01:16 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
DarkMaster, при alter index active (включая restore), и set statistics index ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 01:25 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
DarkMasterселективность индекса пересчитывается когда?1) при вводе create index ... on ... 2) при вводе set statistics index ... Селективность НЕ пересчитывается, если сначала индекс создать, а затем заливать в таблицу данные. Поэтому после всяких bulk-апдейтов (или просто на периодической основе) надо делать set statictics index, если не хотим огрести тормоза на неверных планах с inner-join'ами. Операция эта не требует отрубания юзеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 01:26 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
kdv, Таблоид - спасибо, в очередной раз внесли ясность... Вдогодку - есть ли смысл (для компонент) на автомате генерить SET STATISTICS после заведомо больших порций данных, влитых через скрипт (ими же исполненный) и где (примерно) эта магическая граница для больших порций (есть кое-какая задумка, но пока в плане прикидок - стоит оно или нет)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 02:55 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
DarkMaster> есть ли смысл (для компонент) Чего-чего? DarkMaster> генерить SET STATISTICS после заведомо больших порций данных, DarkMaster> влитых через скрипт (ими же исполненный) Есть. Зависит от соотношения новых данных к старым и содержания индексируемых полей. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 04:29 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
DarkMasterгде (примерно) эта магическая граница для больших порцийОгребание тормозов на запросах, которые раньше летали - вот и вся "магическая граница" :-) Создай скриптик, который будет делать 5-6 запросов к твоей базе, и "фоткать" время их выполнения до и после. Запросы должны быть не вымученными, а такими, которые часто используются, ну и достаточно "тяжелыми". В запросах обязательно должны быть inner join'ы тех таблиц, которые сейчас менялись. Т.е. такие должны быть места, на которых оптимизатор будет делать выбор . Ну, и пусть твой скрипт сравнивает время. Если оно отличается на 25% и более - этот же скрипт пусть и пересчитывает статистику. ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 10:21 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
PS. А вообще, пересчет статистики - очень быстрая операция. Даже на больших таблицах и при сотнях работающих роботах. Не говоря уже про работу обычных юзеров. Так что нет смысла заморачиваться, скажу шершавым языком агитпропа: "залил - пересчитывай!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 10:25 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамDarkMaster> есть ли смысл (для компонент) Чего-чего? IBO ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 10:26 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Таблоид, Ну ты у нас известный нагибатор ;) Спасибо за информацию... Правда не думаю, что что-то придумается универсальное ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 10:28 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Таблоид> Ну, и пусть твой скрипт сравнивает время. Если оно отличается на Таблоид> 25% и более - этот же скрипт пусть и пересчитывает статистику. Сколько букв, ппц, время, скрипт, сравни... Правило собсно простое - если заливаешь больше 25% неравнораспределённых данных - можно уже пересчитывать. Дотошные могут уменьшить цифру до 20%, 15%. DarkMaster> IBO ;) Да хоть IBX. При чём тут статистика индексов? :) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 11:00 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамДа хоть IBX. При чём тут статистика индексов? :) насколько я понял, речь про допилить компоненты для автоматического обновления статистики после массовой заливки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 11:27 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
dimitrГаджимурадов РустамДа хоть IBX. При чём тут статистика индексов? :) насколько я понял, речь про допилить компоненты для автоматического обновления статистики после массовой заливки Абсолютно верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 11:34 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Какой ужас... Мне бы такое в голову не пришло. :) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 11:48 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Приурочить к штатному свипу-бэкапу ночером не судьба? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 19:58 |
|
||
|
Навигация по индексу FB3
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevsky, Да без проблем - так оно и крутится сейчас. Просто например в моем зоопарке пару раз в месяц в базу влетает порядка 1 млн. записей - в остальном штатная работа пользователей без массовых операций аплейта/делита Вот и пришла идея совместить в том же роботе,что данные вливает еще и перестройку индексов при необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 22:30 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=84&tid=1563160]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
88ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 473ms |

| 0 / 0 |
