Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
SomewhereSomehow,
с возвращением!
хотите принять в дар актуальный план вот от этой картинки?
если это нормально и неинтересно, то и фиг с ним

К сообщению приложен файл. Размер - 85Kb
18 окт 15, 20:19    [18294269]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
o-o,

Спасибо!
Так же рад Вас приветствовать! =)

Вы были на #sqlsatMoscow? Хотя вроде Вы не из Москвы. Приехать турбулентно. Я запомнил, что вы из Питера (могу ошибаться, но где-то проскальзывало такое, что я запомнил, что вы из Северной столицы)

В любом случае, люди приезжали даже из других государств! В частности, кто-то потерял украинский паспорт, который потом благополучно забрал. =)

Очень жалею, что нет бэйджиков с указанием ников на сиквел.ру. В частности был бы рад личному знакомству со многими экспертами, например: invm, iap, o-o, mind, aleks2, mnior, и т.д.

Насчет планов - поверьте, я видел и страшнее =)
Как вам такой?

Такую форму встречал много раз, но на скриншоте поразительные цифры!
Кто больше?

#Kaspersy - всасываете? Давайте свои планы, а то мы начинаем думать, что у вас мало данных =)))
18 окт 15, 21:17    [18294369]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
SomewhereSomehow,

К сообщению приложен файл. Размер - 79Kb
18 окт 15, 21:18    [18294370]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
эээ, нет, нас там не было,
и вообще, лучше уж вы к нам, на Колыму
(я из деревни Гадюкино, если что)
а запрос вообще не мой, но выжрал он 45 Гигов темпдб, за что и был пойман.

кстати, не знаете, что за подвох с sys.dm_db_session_space_usage,
он до завершения запроса не показывает в режиме реального времени, кто отъедает темпдб,
а если по завершении запроса еще и сессию закрыть, то ищи-свищи, кто это был
----
а можно еще перевод вот этого?
"#Kaspersy - всасываете?"

К сообщению приложен файл (super_tempdb.zip - 12Kb) cкачать
18 окт 15, 22:00    [18294457]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
o-o,
ну. тем не менее в Гадюкино есть интернет! И он стирает границы.
Например, специалист из одноименной деревни заткнет за пояс многих.

Не то чтоб я рассыпаюсь в комплиментах, просто так и есть.

Кстати, из Гадюкино же ходят автобусы/электрички/свой автомобиль - приезжайте в следующий раз!

sys.dm_db_session_space_usage - не пользовался на регулярной основе. И нафиг он нужен если честно?
Гораздо лучше работает sys.dm_os_buffer_descriptors - там столько инфы можно получить =) Гораздо больше чем из sys.dm_db_session_space_usage.

Дискуссия открыта!

А я самоудаляюсь отсюда =)
Кто хочет - мои контакты есть в профиле, только запаситесь пивом, чтобы меня мотивировать =)
18 окт 15, 22:20    [18294491]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
автор
"#Kaspersy - всасываете?

Человек который организовывал субботник - работает в лаборатории касперского (антивирус касперского).

Те, кто общался с этими ребятами не могли не заметить, как они хвастаются объемом обрабатываемых данных.

И да, объемы впечатляют.

Но только это мизер, по сравнению с тем что есть в мире.
Так что - не стоит выпендриваться.

По этому, была шутка, что мало данных. =)

В общем-то, это просто шутка =)
18 окт 15, 22:24    [18294499]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
+

мама дорогая, а ведь у меня промелькнуло первым делом:
#Kaspersy -- каперсы (маринованные?) -- всасывают -- пиво (наверное)


18 окт 15, 23:01    [18294590]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
ну что товарищи, утомленные нарзаном и не только,
есть ли разумное объяснение происходящему?
прелесть сего плана не в цифрах (большие/маленькие),
а в том, что *после* агрегации почему-то вдруг ожидаем *больше* строк, чем было.
да еще и на 3 порядка.
он же программа, троиться в глазах у него не может, тогда что за... ?
19 окт 15, 11:24    [18295935]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8494
o-o,

что значит ожидаем больше? Разве страницы не могут быть использованы повторно, к примеру?
19 окт 15, 13:00    [18296580]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
Владислав Колосов
o-o,
что значит ожидаем больше? Разве страницы не могут быть использованы повторно, к примеру?

я типа словами описываю содержание картинки.
до агрегирования он предполагает, что строк 50.472.500
(их в 2 раза больше, 124.462.251, но не суть)
после агрегации (разбили на группы, посчитали count)
он ожидает сколько строк? 158.818.000.000
не многовато ли?
я же группирую, а не расщепляю,
по сколько строк надо в каждую группу засунуть, чтобы групп стало в 1000 раз больше, чем исходных строк?
---
вы ничего не путаете, какое еще повторное использование?
я не число ридов (оно же access) показываю, а предполагаемое число строк на выходе
19 окт 15, 13:18    [18296704]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8494
o-o,
Я думал, что вопрос о sys.dm_db_session_space_usage.
19 окт 15, 13:38    [18296845]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
Владислав Колосов
o-o,
Я думал, что вопрос о sys.dm_db_session_space_usage.

а, не, то была жалоба по ходу дела.
если хочешь понять, кто транжирит темпдб, то вот это вот sys.dm_db_session_space_usage
в реальном времени не показывает.
а то, что присоветовал SomewhereSomehow, т.е. sys.dm_os_buffer_descriptors
оно да, расход показывает, я там и смотрю, но оно ж не говорит, кто именно это делает
---
а вообще это была тема-подарок,
вернее, план в подарок.
тем, кому нравятся загадки оптимизатора.
19 окт 15, 13:46    [18296903]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
SomewhereSomehow
А я самоудаляюсь отсюда =)

надеюсь,что сие была шутка
19 окт 15, 13:59    [18297022]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
Maxx
SomewhereSomehow
А я самоудаляюсь отсюда =)

надеюсь,что сие была шутка

вчера состояние здоровья не позволяло, мне кажется :)
недеемся, сегодня залучшело
19 окт 15, 14:13    [18297134]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8494
o-o,

ну как, здесь должна быть простая арифметика, анализатор что-то умножил на что-то и получил такое ожидание. Осталось угадать что на что. Может все параллельные потоки перемножил.
19 окт 15, 18:12    [18298963]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
Владислав Колосов,
Вы серьезно????
И часто он у вас так "умножает"?
Это баговина натуральная, надо только понять, на какие слова на коннекте искать.
То ж спасибо, что дальше он этот выхлоп никуда не использует,
а еще бы дальше шли соединения?
19 окт 15, 19:06    [18299274]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
вот похожий баг, правда, там помножается на MAXDOP:
Costing & Cardinality Errors with Partial Aggregates in Serial Execution Plans

думаете, у меня реально число процессоров за 3000 переваливает
или это родственный баг, но с осложнениями?
19 окт 15, 21:41    [18299766]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
Apoj_sql
Member

Откуда:
Сообщений: 43
Картинка из серии "о вреде джойнов по колонкам с немного не совпадающими типами"
Картинка с другого сайта.
20 окт 15, 09:14    [18300481]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31824
Apoj_sql
Картинка из серии "о вреде джойнов по колонкам с немного не совпадающими типами"
Да, Cost 289% тоже красиво выглядит :-)
20 окт 15, 10:29    [18300848]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8494
o-o,

надо рассматривать абстрактно, это же арифметическая машина. Если он перемножает кур с петухами, то все ОК, если ему вдруг свинья вместо петуха придет, то будет такой гибрид на выходе. Думаю, что баг состоит в том, что он принимает свинью за петуха.
Ну, например, при расчете ценников кто-то указал стоимость в валюте. Ценники поехали не туда...
20 окт 15, 10:30    [18300857]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
Apoj_sql
Member

Откуда:
Сообщений: 43
alexeyvg
Apoj_sql
Картинка из серии "о вреде джойнов по колонкам с немного не совпадающими типами"
Да, Cost 289% тоже красиво выглядит :-)

Мне вот больше понравился отрицательный estimated data size. А проценты там и поболе есть:
Картинка с другого сайта.
20 окт 15, 10:47    [18300990]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
Apoj_sql
Мне вот больше понравился отрицательный estimated data size.

у него просто цифро-места в bigint закончились, overflow:
[bigint: -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)]
у меня-то он в 47 Тб это свернул, а у вас перебор

К сообщению приложен файл. Размер - 10Kb
20 окт 15, 10:54    [18301052]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
Apoj_sql
Member

Откуда:
Сообщений: 43
o-o
Apoj_sql
Мне вот больше понравился отрицательный estimated data size.

у него просто цифро-места в bigint закончились, overflow:
[bigint: -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)]
у меня-то он в 47 Тб это свернул, а у вас перебор

Да я понял, что "перебор"
20 окт 15, 11:02    [18301129]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
o-o
а, не, то была жалоба по ходу дела.
если хочешь понять, кто транжирит темпдб, то вот это вот sys.dm_db_session_space_usage
в реальном времени не показывает.
а то, что присоветовал SomewhereSomehow, т.е. sys.dm_os_buffer_descriptors
оно да, расход показывает, я там и смотрю, но оно ж не говорит, кто именно это делает
Погодите, а какое вообще отношение имеет sys.dm_os_buffer_descriptors к тому сколько выжрано места в tempdb? Оно же показывает только то что в памяти, а как же то что уже было сброшено в tempdb на диск? Да и опять же, все внутренние структуры (hash/sort) они вообще мимо кэша идут.

То что вам нужно, это sys.dm_db_task_space_usage, которое показывает использование tempdb для текущего процесса, а не для сессии. Очень полезное представление кстати. Правда с этим DMV есть небольшая проблема (как впрочем и со другим view тоже). Невозможно достоверно сказать сколько реально занято в tempdb в текущий момент под пользовательские объекты. При попытке посчитать (user_objects_alloc_page_count - user_objects_dealloc_page_count) получается полная фигня, потому что при создании и заполнении temp таблицы, alloc_page_count успешно увеличивается, но вот если потом сделать DROP TABLE #T, то это не засчитывается как dealloc_page_count. Только если сделать DELETE FROM #T, тогда это будет посчитано как деаллокейшн, но никто так никогда не удаляет временные таблицы. Так что по сути эти оба view показывают сколько всего было выделенно под временные объекты в течение жизни реквеста/сессии, но не факт что это в текущий момент это место все еще занято. Но в то же время internal_objects_page_count более менее точно показывает, потому как выделение и возрат пямяти происходит внутренними "запросами". Очень удобно смотреть в реальном времени, если какой-то запрос много сливает в tempdb под hash/sort/spool.
26 окт 15, 20:52    [18330004]     Ответить | Цитировать Сообщить модератору
 Re: для SomewhereSomehow о сносе крыши оптимизатора  [new]
o-o
Guest
Mind
Погодите, а какое вообще отношение имеет sys.dm_os_buffer_descriptors к тому сколько выжрано места в tempdb?
...
То что вам нужно, это sys.dm_db_task_space_usage, которое показывает использование tempdb для текущего процесса, а не для сессии.

не знаю, я временами несу такую фигню, что себе же и удивляюсь
да, не там, а вроде в sys.dm_db_file_space_usage было видно,
как пространство отъедалось.
в памяти как раз никакого темпдб практически не было,
там между тремя юзерскими базами было поделено в гигабайтах
(в смысле, это я перевожу в Гб нацело и учитываю, где не 0)
вот это sys.dm_db_file_space_usage показывало отъедаемое,
а вот это sys.dm_db_session_space_usage по моей сессии отдавало 0
до самого завершения запроса.
завтра посмотрю это sys.dm_db_task_space_usage,
а заодно точно смогу сказать, что же показывало отъедание.
оно у меня в мониторинг вставлено.
спасибо!
26 окт 15, 22:13    [18330279]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить