Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Народ я наверное что то не понимаю но почему при обновлении статистики (далее вывод explain) информикс сканирует таблицу каждый раз для каждого поля? Неужели раз он и так читает таблицу целиком, нельзя собрать распределения за один раз для всех указанных в UPDATE STATISTICS полей в один проход по таблице? Туплю наверное .... Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 16:02 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
AndronНарод я наверное что то не понимаю но почему при обновлении статистики (далее вывод explain) информикс сканирует таблицу каждый раз для каждого поля? Неужели раз он и так читает таблицу целиком, нельзя собрать распределения за один раз для всех указанных в UPDATE STATISTICS полей в один проход по таблице? Туплю наверное .... Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 16:49 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Точно, там же гигабайты. А вот например medium для той же таблицы информик делает за один проход по тем же полям: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. а насколько меньше памяти при этом надо! хотя распределения конечно менее точные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 17:06 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
AndronНарод я наверное что то не понимаю но почему при обновлении статистики (далее вывод explain) информикс сканирует таблицу каждый раз для каждого поля? Неужели раз он и так читает таблицу целиком, нельзя собрать распределения за один раз для всех указанных в UPDATE STATISTICS полей в один проход по таблице? Туплю наверное .... Код: plaintext 1. 2. 3. 4. 5. 6. 7. А можно встречный вопрос ? Ну и зачем вам High по ВСЕМ столбцам этой не маленькой таблички ? Надеюсь, "рекомендации известных собаководов" из ИБМ вам известны на этот счет ? А насчет вашего вопроса вроде бы понятно - сервер не может за раз отсортировать все требуемые объемы. Для этого не хватает ресурсов - ОП и временных dbspaces. Тем более, что вы их не указали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 17:06 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Потому что high все же лучше чем medium, а также потому что вначале high работал быстро (пока таблицы были не очень большими). Теперь вот таблицы выросли и время обновления статистики тоже. А рекомендации собаководов из IBM мне конечно известны. Теперь будем переделывать как они рекомендуют (high для лидирующего поля индекса, medium для остальных индексированных полей). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 17:13 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Кстати еще можно и памяти для PDQ добавить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 17:15 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
AndronПотому что high все же лучше чем medium, а также потому что вначале high работал быстро (пока таблицы были не очень большими). Теперь вот таблицы выросли и время обновления статистики тоже. А рекомендации собаководов из IBM мне конечно известны. Теперь будем переделывать как они рекомендуют (high для лидирующего поля индекса, medium для остальных индексированных полей). Хочу напомнить, что medium бывает разный :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 17:24 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
AndronПотому что high все же лучше чем medium, а также потому что вначале high работал быстро (пока таблицы были не очень большими). Теперь вот таблицы выросли и время обновления статистики тоже. А рекомендации собаководов из IBM мне конечно известны. Теперь будем переделывать как они рекомендуют (high для лидирующего поля индекса, medium для остальных индексированных полей).Техподдержка даже простой скрипт сваяла ... - это к вопросу о переделывать. А ещё у Арта Кагеля есть премилая утилита, которая имеет специальный ключ для проверки, нужно ли обновлять статистику на данной таблице, или нет. Это очевидное преимущество, поскольку обычно её обновляют периодически, не вдаваясь в детали, надо или не надо. Входит она, кажется,в util_2k и называется dostats. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 17:27 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Да я в курсе что там можно настраивать confidence и resolution если вы их имеете ввиду. Просто все таки базовый medium сильно от high отличается. Ну а возможность покрутить настройки и посмотреть что получиться это конечно неплохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 17:28 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
АлексанА ещё у Арта Кагеля есть премилая утилита, которая имеет специальный ключ для проверки, нужно ли обновлять статистику на данной таблице, или нет. Это очевидное преимущество, поскольку обычно её обновляют периодически, не вдаваясь в детали, надо или не надо. Входит она, кажется,в util_2k и называется dostats. Можно и без утилиты, обычным SQL-запросом (см. ниже) сформировать набор команд, а уже сформированный скрипт _update_stat_opt.sql затем выполнить любым доступным способом. В моем случае проверяется изменение количества строк хотя бы на 10%, но эту цифру можно легко изменить. Код: 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. 49. 50. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 17:41 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
AndronПросто все таки базовый medium сильно от high отличается. Чем ? Результатами выполнения реальных запросов на реальных данных в пром БД ? Честно говоря, давно уже с таким не встречался, хотя в последние годы и экспериментов таких не ставил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 17:45 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
А вы всем выше приведенным боретесь за уменьшение времени выполнения update statistics или эти действия (использование не только HIGH) могут ускорить выполнение запросов к БД ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2008, 21:04 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
to Vasilis: насколько я понимаю чем больше информации имеет в своем распоряжении оптимизатор, тем эффективнее будет план запроса. И режим high дает оптимизатору больше данных чем medium. Результат то выполнения запроса все равно будет один и тот же - все дело во времени выполнения :) А кстати идея сбора статистики только по таблицам где превышен некий процент суммарных изменений данных у меня тоже была. По крайней мере можно реже собирать статистику в таблицах где изменений происходит очень мало. to bk0010: сейчас оптимизирую время сбора статистики и распределений. Буду проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 08:44 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Andronto Vasilis: насколько я понимаю чем больше информации имеет в своем распоряжении оптимизатор, тем эффективнее будет план запроса. И режим high дает оптимизатору больше данных чем medium. Результат то выполнения запроса все равно будет один и тот же - все дело во времени выполнения :)В больших таблицах, можно собирать не по всем строкам, а например по 10% AndronА кстати идея сбора статистики только по таблицам где превышен некий процент суммарных изменений данных у меня тоже была. По крайней мере можно реже собирать статистику в таблицах где изменений происходит очень мало.Только как отследить кол-во изменений? Никак. В таблице 100 строк, все сегодня проапдейчены, как это обнаружить? Или утром было 100 строк, в обед их удалили, вечером вставили другие 100 строк, как это обнаружить? Хорошо бы информикс позволял собирать статистику пофрагментно, чтобы каждый день не мусолить данные 1996-2007 года. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 09:18 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисТолько как отследить кол-во изменений? Никак. В таблице 100 строк, все сегодня проапдейчены, как это обнаружить? Или утром было 100 строк, в обед их удалили, вечером вставили другие 100 строк, как это обнаружить? Хороший вопрос. А как насчет анализа PartitionProfiles? Если он включен то сразу видно были вообще изменения на таблице или нет (причем любые, хоть insert, update или delete). PPF решает этот вопрос "были ли изменения в таблице". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 10:21 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
vasilis АлексанА ещё у Арта Кагеля есть премилая утилита, которая имеет специальный ключ для проверки, нужно ли обновлять статистику на данной таблице, или нет. Это очевидное преимущество, поскольку обычно её обновляют периодически, не вдаваясь в детали, надо или не надо. Входит она, кажется,в util_2k и называется dostats. Можно и без утилиты, обычным SQL-запросом (см. ниже) сформировать набор команд, а уже сформированный скрипт _update_stat_opt.sql затем выполнить любым доступным способом. Можно. Некогда я собрался доработать аналогичный Вашему скрипт, собираясь добавить в него гибкости и управляемости (например, мне было нужно обновлять статистику не во всей базе данных, а лишь в некоторых таблицах, причём вызывать его нужно было из скриптов разработчиков приложений и от нужного им имени, а также хотелось большей диагностики - статистика для целой базы обновлялась долго, но причины ясны не были - неправильная настройка памяти? какая-то одна таблица?), и решил потратить несколько часов на знакомство с наследием (перспектива разбираться в чужой логике не радовала, но грела надежда, что я не первый, кто решает такие проблемы). Познакомившись, от разработки скрипта я отказался, потому что сие творение г-на Кагеля решило все мои проблемы (в примере, утилита умееет обновлять статистику на отдельной таблице и с правами доступа к выполняемому файлу оказалось легче с бинарной программой, чем со скриптом; также нашлись ключи, при которых программа сохраняла время выполнения каждого upd. stat.-запроса и порождала sqexplain-отчёт). Преодолев затруднения с его компиляцией, я был вознаграждён большей производительностью (подготовительная часть, генерирующая sql-скрипт, в моём исполнении работала почти полминуты, о чём я и не подозревал - всё же шеловские скрипты работают не так быстро, как скомпилированные программы!). Есть и дополнительные удобства, которые для меня полезны не были, но при некоторых условиях могут очень помочь - например, к утилите прилагается скрипт, позволяющий балансировать параллельное обновление статистики для нескольких баз и/или таблиц (представьте, что пара больших таблиц лежат на непересекающемся наборе дисков, и что по ночам сервер простаивает. Обновляя статистику для них параллельно, можно сильно уменьшить совокупное время). Безусловно, всё это можно и самому написать, но можно воспользоваться готовым результатом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 10:21 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Насчет анализа ppf есть все таки такой нюанс что если обновления данных не меняют самих значений (что само по себе странно но вполне возможно) т.е. например было в поле значение 'A' и его на 'A' изменили то конечно изменение зафиксируется, но значение то осталось прежним и распределение соответственно не должно измениться. А вот если кол-во записей не изменилось, а сами значения поменялись то тут конечно ppf поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 10:37 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
AndronНасчет анализа ppf есть все таки такой нюанс что если обновления данных не меняют самих значений (что само по себе странно но вполне возможно) т.е. например было в поле значение 'A' и его на 'A' изменили то конечно изменение зафиксируется, но значение то осталось прежним и распределение соответственно не должно измениться. Это мелочи, это можно не учитывать. AndronА вот если кол-во записей не изменилось, а сами значения поменялись то тут конечно ppf поможет. Да, точно, ppf может помочь, логику надо продумать, чтобы с партициями в больших таблицах процент изменений правильно считать, а то из-за веса старых данных можно не заметить что в свежих данных изменился нужный процент строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 11:07 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисТолько как отследить кол-во изменений? Никак. В таблице 100 строк, все сегодня проапдейчены, как это обнаружить? Или утром было 100 строк, в обед их удалили, вечером вставили другие 100 строк, как это обнаружить? Вроде обещали в 11-ке... : nkulikov 26 апр 07, 19:23 Re: Как получить Timestamp? В 11 версии будет для каждой строки поддерживаться такой timestamp (дата модификации записи) nkulikov 27 апр 07, 06:57Для нового уровня изволяции LAST COMMITED DB2/Informix будут поддерживать такой столбец сами автоматически. Более подробно я еще не разбирался. Вопрос, что делать с просто удалёнными :) Журавлев Денис Хорошо бы информикс позволял собирать статистику пофрагментно, чтобы каждый день не мусолить данные 1996-2007 года. +1 :) И где мы были, когда народ фичи на 11-ку собирал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 11:26 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
АнатоЛой nkulikov 27 апр 07, 06:57Для нового уровня изволяции LAST COMMITED DB2/Informix будут поддерживать такой столбец сами автоматически. Более подробно я еще не разбирался. Вопрос, что делать с просто удалёнными :)Нафиг нафиг, поднимать с диска каждую из 100млн строк, ради такой проверки, спасибо. АнатоЛой Хорошо бы информикс позволял собирать статистику пофрагментно, чтобы каждый день не мусолить данные 1996-2007 года. +1 :) И где мы были, когда народ фичи на 11-ку собирал :)Я кстати писал чтобы я хотел, и еще я думаю на наши просьбы им начхать, и это правильно, есть толстые дяди которые башляют, нужные им фичи и реализуют. компания "Независимость-Вольво" объявляет этот год годом клиента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 11:37 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Денис, я тоже им писал и они все таки делают если от них не отставать: по моему запросу они таки сделали PAM в 64bit AIX, а также довели до ума работу PAM и CSM. Но мы платим им за техсаппорт конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 11:48 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
AndronДенис, я тоже им писал и они все таки делают если от них не отставать: по моему запросу они таки сделали PAM в 64bit AIX, а также довели до ума работу PAM и CSM. Но мы платим им за техсаппорт конечно.так то баг, и то индусы тебе вешали лапшу про odbc+pam+парольная-идентификация ссылаясь на документацию (т.е. баг документировали и сделали фичей). -- А вазелин еще надо заслужить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 12:10 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисЯ кстати писал чтобы я хотел, и еще я думаю на наши просьбы им начхать, и это правильно, есть толстые дяди которые башляют, нужные им фичи и реализуют. Не думаю, что пожелания заказчиков остаются без внимания, но есть разумные ограничения. Могу себе представить, что будет, если к очередному релизу будут реализованы все несколько сотен пожеланий заказчиков! Кроме того, в IBM ничего не бывает быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 13:09 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Вернемся к теме обновления статистики. Когда получаем план, если не хотим чтобы запрос выполнялся делаем например set explain on avoid_execute. Так вот директива avoid_execute не работает для update statistics high, а для medium работает. Informix 10.00.UC7 и 11.10.UC2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 14:23 |
|
||
|
Обновление статистики
|
|||
|---|---|---|---|
|
#18+
Andronto Vasilis: насколько я понимаю чем больше информации имеет в своем распоряжении оптимизатор, тем эффективнее будет план запроса. И режим high дает оптимизатору больше данных чем medium. Результат то выполнения запроса все равно будет один и тот же - все дело во времени выполнения :) "Всякая палка о двух концах". Режим high не только требует значительно больше времени для сбора данных, но и создает бОльший объем данных, которые надо хранить в системном каталоге, а когда таких данных очень много, соответственно, растет время чтения этих данных из таблицы и обработки оптимизатором. Поэтому, принцип один - если результат выполнения запроса (план оптимизатора) не меняется с уменьшением данных статистики, то лучше, естественно, использовать подходящий medium, а если результат ухудшается, то использовать тот режим сбора сбора статистики, при котором время запроса минимально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2008, 15:20 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=35246106&tid=1608127]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 271ms |
| total: | 404ms |

| 0 / 0 |
