Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение временных таблиц. / 25 сообщений из 29, страница 1 из 2
20.07.2017, 12:59
    #39492298
VDom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
HP-UX 11.31 IA
Oracle 10.2.0.5

Постоянно слетают планы запросов в которых участвуют темповые таблицы.
У некоторых запросов по 50 планов!! Хинты с самплингом не помогают.
Обычно туда что-то вставляют insert-ом с select-ом а потом клеят с другими таблицами и т.д.
При этом в плане по темповой таблице практически всегда FTS.
Это нормально, так как обычно они у нас содержат 10-100 строк (бывает и больше но редко, предугадать невозможно).

До этого был Sles 10 IA-64 и Oracle 10.2.0.5 и такого явления не было.

Это более или менее объяснимая ситуация, странность же следующая :
Проблему удалось решить обойти созданием джоба который каждые 5 минут собирает статистику по самым горячим темповым таблицам.
Точнее по темповым таблицам которые участвуют в топовых запросах.

Причём, обратите внимание, что легчает всем сессиям которые используют эти таблицы.
А ведь каждая сессия имеет свой независимый от других набор данных, а значит и свою статистику.

Вот именно этот момент мне абсолютно не понятен.

Есть у кого то идеи почему такое происходит?
...
Рейтинг: 0 / 0
20.07.2017, 13:01
    #39492301
Странное поведение временных таблиц.
VDom,

плохие планы до сбора статистики и хорошие после сбора - предлагается выдумать самим?
...
Рейтинг: 0 / 0
20.07.2017, 13:26
    #39492331
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
VDomА ведь каждая сессия имеет свой независимый от других набор данных, а значит и свою статистику.
Вот именно этот момент мне абсолютно не понятен.
Как ни удивительно, но прямой связи между актуальностью статистики и производительностью запросов нет.
Статистика лишь должна наводить оптимизатор на правильные мысли, помогая принимать выгодные решения.
Если система стабильна (в плане изменений) и работает в стабильном окружении (установившиеся потоки данных) - то статистику можно и вообще не собирать :)
Поэтому собираеть ее non-stop - просто греть атмосферу, расплачиваясь за собственную лень и некомпетентность общим снижением производительности системы.

Хинт: dbms_stats.set%
...
Рейтинг: 0 / 0
20.07.2017, 13:32
    #39492338
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
VDomHP-UX 11.31 IA
Oracle 10.2.0.5

Постоянно слетают планы запросов в которых участвуют темповые таблицы.
У некоторых запросов по 50 планов!! Хинты с самплингом не помогают.
Обычно туда что-то вставляют insert-ом с select-ом а потом клеят с другими таблицами и т.д.
При этом в плане по темповой таблице практически всегда FTS.
Это нормально, так как обычно они у нас содержат 10-100 строк (бывает и больше но редко, предугадать невозможно).

До этого был Sles 10 IA-64 и Oracle 10.2.0.5 и такого явления не было.

Это более или менее объяснимая ситуация, странность же следующая :
Проблему удалось решить обойти созданием джоба который каждые 5 минут собирает статистику по самым горячим темповым таблицам.
Точнее по темповым таблицам которые участвуют в топовых запросах.

Причём, обратите внимание, что легчает всем сессиям которые используют эти таблицы.
А ведь каждая сессия имеет свой независимый от других набор данных, а значит и свою статистику.

Вот именно этот момент мне абсолютно не понятен.

Есть у кого то идеи почему такое происходит?

в Oracle есть еще такая штука, как hot objects (см. dbms_shared_pool.markhot)
необъяснимо большое количество планов было замечено при переводе объекта в эту категорию (это не баг, а фича)
...
Рейтинг: 0 / 0
20.07.2017, 13:35
    #39492340
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
вообще хинт cardinality на 90% решает проблемы производительности запросов с временными таблицами
без дополнительных телодвижений
...
Рейтинг: 0 / 0
20.07.2017, 13:36
    #39492341
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
andrey_anonymousVDomА ведь каждая сессия имеет свой независимый от других набор данных, а значит и свою статистику.
Вот именно этот момент мне абсолютно не понятен.
Как ни удивительно, но прямой связи между актуальностью статистики и производительностью запросов нет.
Статистика лишь должна наводить оптимизатор на правильные мысли, помогая принимать выгодные решения.
Если система стабильна (в плане изменений) и работает в стабильном окружении (установившиеся потоки данных) - то статистику можно и вообще не собирать :)
Поэтому собираеть ее non-stop - просто греть атмосферу, расплачиваясь за собственную лень и некомпетентность общим снижением производительности системы.

Хинт: dbms_stats.set%

выглядит даже как-то нелепо, настолько категорично. или вы просто не имели с range based partitioning, когда каждый новый день - новая партиция, и данных не пара сотен тысяч, а сотни миллионов строк. или просто пара миллионов

в таких условиях неправильная статистика порой чревата полным отказом системы - в смысле запросы начинают выполняться бесконечно долго, и вероятность такого - чуть менее, чем половина случаев.
...
Рейтинг: 0 / 0
20.07.2017, 13:44
    #39492347
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
dbpatchв таких условиях неправильная статистика порой чревата полным отказом системы - в смысле запросы начинают выполняться бесконечно долго, и вероятность такого - чуть менее, чем половина случаев.

в таких случаях "правильная" статистика, собранная в неудачное время и испоганившая текущий план выполнения, способна нагадить больше, чем ее отсутствие , или "неправильная", но заранее импортированная )))

А вообще уважающие себя запросы на быстро растущей партиции должны вести себя с точки зрения, что партиция заполнена по максимуму, а не менять планы как перчатки )
...
Рейтинг: 0 / 0
20.07.2017, 14:02
    #39492369
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
dbpatchвыглядит даже как-то нелепо, настолько категорично. или вы просто не имели с range based partitioning, когда каждый новый день - новая партиция, и данных не пара сотен тысяч, а сотни миллионов строк. или просто пара миллионов
Ну куда уж нам, сирым...
...
Рейтинг: 0 / 0
20.07.2017, 14:07
    #39492382
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
DВАdbpatchв таких условиях неправильная статистика порой чревата полным отказом системы - в смысле запросы начинают выполняться бесконечно долго, и вероятность такого - чуть менее, чем половина случаев.

в таких случаях "правильная" статистика, собранная в неудачное время и испоганившая текущий план выполнения, способна нагадить больше, чем ее отсутствие , или "неправильная", но заранее импортированная )))

А вообще уважающие себя запросы на быстро растущей партиции должны вести себя с точки зрения, что партиция заполнена по максимуму, а не менять планы как перчатки )

пока стабильного решения этой проблемы нам найти не удалось. вернее стабилизировали в 10.2 несколько лет назад, методом копирования статистики с прошлого дня и блокировки пересбора оной, но в 11.2 оптимизатор нет нет и уйдет в штопор

пока мужественно пытаемся прикрутить interval partitioning + dynamic sampling, впечатления очень противоречивые

оно конечно понятно, что задача нетиповая, но ....
...
Рейтинг: 0 / 0
20.07.2017, 14:46
    #39492412
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
dbpatch,

Вполне типовая и одно из решений практически как у вас, но нарезают секции немного наперед и сразу же копируют статистику с нужными правками(например по ночам с субботы на воскресенье) , при этом сбор статистики блокируют на уровне таблицы.
...
Рейтинг: 0 / 0
20.07.2017, 14:47
    #39492414
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
dbpatchпока стабильного решения этой проблемы нам найти не удалось. вернее стабилизировали в 10.2 несколько лет назад, методом копирования статистики с прошлого дня и блокировки пересбора оной, но в 11.2 оптимизатор нет нет и уйдет в штопор

пока мужественно пытаемся прикрутить interval partitioning + dynamic sampling, впечатления очень противоречивые

оно конечно понятно, что задача нетиповая, но ....
очень даже типовая )
в 10 версии успешно решаемая вашим методом, а вот с 11 то гистограммы картинку подпортят, то кардиналити фидбак, а в 12 придут еще и адаптивные курсоры )
Я по-возможности пока отключаю всю эту хрень, есть надежда на адаптивные курсоры и расширенную статистику, но пока видимо реализация оставляет желать лучшего
...
Рейтинг: 0 / 0
20.07.2017, 14:50
    #39492415
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
VDom,

Или как уже советовали хинтуйте cardinality или отключите dynamic sampling в них
...
Рейтинг: 0 / 0
20.07.2017, 14:54
    #39492421
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
DВА,

Cardinality feedback c 12.1 появился) а адаптивные планы даже оракл рекомендует выключать) гистограммы, кстати, я в таких случаях тоже правил тем же джобом, если они нужны
...
Рейтинг: 0 / 0
20.07.2017, 14:55
    #39492423
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
DВАdbpatchпока стабильного решения этой проблемы нам найти не удалось. вернее стабилизировали в 10.2 несколько лет назад, методом копирования статистики с прошлого дня и блокировки пересбора оной, но в 11.2 оптимизатор нет нет и уйдет в штопор

пока мужественно пытаемся прикрутить interval partitioning + dynamic sampling, впечатления очень противоречивые

оно конечно понятно, что задача нетиповая, но ....
очень даже типовая )
в 10 версии успешно решаемая вашим методом, а вот с 11 то гистограммы картинку подпортят, то кардиналити фидбак, а в 12 придут еще и адаптивные курсоры )
Я по-возможности пока отключаю всю эту хрень, есть надежда на адаптивные курсоры и расширенную статистику, но пока видимо реализация оставляет желать лучшего

гистограммы и в 10.2 портили
а вот про Cardinality Feedback мужики-то и не знали! надо тщательнее New Features изучать, спасибо за наводку.
кстати из последних стабилизаций - CREATE VIEW table_pq SELECT * FROM (SELECT /*+ PARALLEL(t,4) FULL(t) */ FROM table t)

не панацея, но хоть как-то позволят не срываться в merge join и nested loop на ad-hoc запросах, вместо hj.
осталось только популяризировать у пользователей понимание, где им нужно ожидать и применять индексный доступ, а где "быстрый" :)
...
Рейтинг: 0 / 0
20.07.2017, 14:56
    #39492427
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
xtenderDВА,

Cardinality feedback c 12.1 появился) а адаптивные планы даже оракл рекомендует выключать) гистограммы, кстати, я в таких случаях тоже правил тем же джобом, если они нужны

чо?

https://blogs.oracle.com/optimizer/cardinality-feedback
...
Рейтинг: 0 / 0
20.07.2017, 14:58
    #39492429
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
dbpatch,
хитрый ход ))
...
Рейтинг: 0 / 0
20.07.2017, 15:00
    #39492431
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
xtenderDВА,

Cardinality feedback c 12.1 появился) а адаптивные планы даже оракл рекомендует выключать) гистограммы, кстати, я в таких случаях тоже правил тем же джобом, если они нужны

конкретно так появились может и в 12.1 , а жить мешать начали еще с 11 )))
...
Рейтинг: 0 / 0
20.07.2017, 15:01
    #39492433
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
dbpatch,

Да, глюканул, перепутал... Давненько уже только с 12 работаю)
...
Рейтинг: 0 / 0
20.07.2017, 15:22
    #39492453
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
DВАdbpatch,
хитрый ход ))

ну, ты же понимаешь, это не от хорошей жизни, в смысле это не техническое решение, это больше борьба с человеческим фактором.
пользователи у нас люди хорошие, и Java знают отлично, но почему-то вопрос посмотреть explain plan у 99% популяции - непреодолимая задача, а вписать хинты... что такое хинты?
...
Рейтинг: 0 / 0
20.07.2017, 15:23
    #39492455
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
dbpatchDВАdbpatch,
хитрый ход ))

ну, ты же понимаешь, это не от хорошей жизни, в смысле это не техническое решение, это больше борьба с человеческим фактором.
пользователи у нас люди хорошие, и Java знают отлично, но почему-то вопрос посмотреть explain plan у 99% популяции - непреодолимая задача, а вписать хинты... что такое хинты?

жертвы ООП )))
...
Рейтинг: 0 / 0
20.07.2017, 15:36
    #39492470
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
DВАdbpatchпропущено...


ну, ты же понимаешь, это не от хорошей жизни, в смысле это не техническое решение, это больше борьба с человеческим фактором.
пользователи у нас люди хорошие, и Java знают отлично, но почему-то вопрос посмотреть explain plan у 99% популяции - непреодолимая задача, а вписать хинты... что такое хинты?

жертвы ООП )))

скорее веры в стабильные и добрые черные ящики :)
хотя их тоже можно понять - ну как так, вот вчера и в течение месяца все работало отлично, а сегодня нет!

значит это ты все сам лично поломал, давай чини, разбирайся!

пояснять им, что CBO это во сама себе по дизайну такая штука, что из лучших побуждений может ломаться просто потому что
сегодня чуть другие данные - в их представление о мире не входит - ни в одной другой программисткой среде таких поведений софта
обычно не наблюдается, дескать ты нас обманываешь, а вчера просто взял и индекс небось удалил (!) и оно теперь тормозит

да даже сама фраза "давайте удалим индексы, оно быстрее заработает" - уже в головах вызывает диссонанс (учили же в ВУЗе что индексы это хорошо!)

потому ... вносим стабильность, удваиваем ВВП !
...
Рейтинг: 0 / 0
20.07.2017, 15:44
    #39492476
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
dbpatchзначит это ты все сам лично поломал, давай чини, разбирайся!Блин, как знакомо! У нас еще говорят: Может, у тебя какие то скрипты недонакатились ? И смотрят так подозрительно )))
...
Рейтинг: 0 / 0
20.07.2017, 16:04
    #39492486
dba123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
VDom,

VDomHP-UX 11.31 IA
Oracle 10.2.0.5
...
Причём, обратите внимание, что легчает всем сессиям которые используют эти таблицы.
А ведь каждая сессия имеет свой независимый от других набор данных, а значит и свою статистику.

Вот именно этот момент мне абсолютно не понятен.

Есть у кого то идеи почему такое происходит?
Имхо, до 12с, если действительно сделан "джоб, который каждые 5 минут собирает статистику", то
такой джоб должен устанавливать для всех сессий numrows, numblks в любом случае 0, так как
- dbms_stats.gather_table_stats начинался раньше с коммита (а он обнулит таблицу для on commit delete rows)
- сессия новая в gtt нет строк (для preserve rows)


другое дело в 12с: там для таких таблиц можно указать (dbms_stats.set_table_prefs) видимость статистики на уровне scope:shared|session (dbms_stats.gather_table_stats не коммитит теперь)
...
Рейтинг: 0 / 0
20.07.2017, 17:26
    #39492558
VDom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
Уточняю - БД у меня растёт на 600ГБ в месяц с тенденцией к увеличению.

Конечно не все таблицы растут так быстро , но десятка 3-4 таки да. Регулярно штатными средствами Oracle собирается статистика. Для чего это делается и почему всем понятно и так.

Но прямого отношения к теме это не имеет.

dbpatchdynamic sampling - не помогает
DВАcardinality - тоже не помогает
С них мы начинали. Временно помогает, потом планы опять плывут.

Вопрос в следующем - как влияет сбор статистики на темповой таблице в одной сессии на планы запросов в других сессиях использующих эту таблицу?

Вот в этом состоит загадка. Этого я не понимаю, это противоречит документации и логике.
...
Рейтинг: 0 / 0
20.07.2017, 17:45
    #39492581
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение временных таблиц.
VDomdbpatchdynamic sampling - не помогает
увы, да

VDomВопрос в следующем - как влияет сбор статистики на темповой таблице в одной сессии на планы запросов в других сессиях использующих эту таблицу?

Вот в этом состоит загадка. Этого я не понимаю, это противоречит документации и логике.
а можно ссылку на упопянутое место в документации?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение временных таблиц. / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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