Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
03.03.2012, 21:20
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
что "раскопал" - действительно существенно реже компилит AQ запросы то есть экономия на по CPU должна быть + меньше наведенных локов от этого скажем, оконный броузинг, запросы типовые, но параметры - разные каждый раз если включить - кеш статичный если не включать - каждый запрос пополняет кеш планов побочный эффект может быть неприятный - если в кеше засядет "плохой" план. он засядет надолго с этой опцией но выигрыш, внешне, того стоит, хотя и не на всех системах будет явно виден ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.03.2012, 22:20
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
если интересно - картинки насыплю :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.03.2012, 23:00
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
интересно! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.03.2012, 23:00
|
|||
---|---|---|---|
|
|||
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
Crimeanесли интересно - картинки насыплю :) Конечно интересно. А ещё интересно что за картинки можно насыпать ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2012, 14:08
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
берем профайлер. берем "типовые" запросы на подчитку данных. скажем, так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
пускаем профайлер на ловлю SP:CacheInsert видим в трасе 100 записей на добавление AQ - все логично теперь ставим 'optimize for ad hoc workloads' = 1 перед выполнением можно сбросить кеша. тогда будет 1 запись. если не сбрасывать - будет 0 записей (если до того запускали предыдущий вариант) PROFIT демонстрировать как борьба за кеш при достатке ресурсов убивает сервер тут не буду, но это действительно случается штука достаточно специфичная и имеет сайд - эффекты, но попробовать стоит, если это "ваша" ситуация ессно, не относится к RPC вызовам, что и отражено в доке ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2012, 16:17
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
Правильно ли я понимаю, это костыль специально только для обхода плохого (дырявого) проектирования клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2012, 16:26
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
а где тут "дырявость"? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2012, 17:34
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
Crimeanпобочный эффект может быть неприятный - если в кеше засядет "плохой" план. он засядет надолго с этой опцией Хмм... А не менее плохой план БЕЗ этой опции засядет НЕ на долго?? Поясните, не улавливаю мысль! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2012, 17:40
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
чего проще - пускаем профайлер и гоняем тестовые запросы, отличающиеся, скажем, незначащим пробелом в хвосте запроса я уже молчу про параметризацию ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2012, 17:51
|
|||
---|---|---|---|
|
|||
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
наверное чего-то не понимаю... почему и куда костыль? если не включать 'optimize for ad hoc workloads', все планы попадают в кэш. если включать, то на первый раз выполнения запроса в кэш попадает не план, а stub, у которого меньше размер и сидит он в кэше чтоб было известно, что такой-то запрос 1 раз уже выполняли. если приходит второй раз такой же запрос, то уже в кэш запишется и план. при чем тут вытесняемость? что при включенной опции, что без, как вытеснялись, так и будут вытесняться. идеализированно: если известно, что все запросы одноразовые, то надо включать, потому что вместо планов будут только stub-ы, т.е. экономия места. с другой стороны, если все запросы хотя бы по 2 раза будут выполняться, то не надо включать, т.к. план вместо того чтоб сразу попасть, как при выключенной опции, будет дожидаться, когда у stub-а счетчик станет 2. тогда план запишется, ну т.е. сервер его 2 раза высчитает, прежде чем в кэше запомнить ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2012, 17:55
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
pardon, а если "одинаковых" запросов много, но отличаются они только параметрами? про forced пока не говорим ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2012, 19:12
|
|||
---|---|---|---|
|
|||
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
Crimean, когда нету насильной параметризации, а запрос с равенством (where id = 1), то при включенном 'optimize for ad hoc workloads' при первом запуске запроса в кэш идет stub для shell-а (ну, который с конкретной цифрой, where id = 1), а его настоящий план, который с параметром (сделанный сервером, where id = @1), сразу попадает как Compiled Plan. при запуске с другой цифрой (where id = 2) в кэш добавляется еще 1 stub для shell-а (where id = 2), а счетчик у настоящего плана, который параметризован, увеличивается (его использовали). теперь если снова запустить с where id = 1, вместо stub для него пишется Compiled Plan, для shell. ну и если теперь гонять с where id = 1, то используется Compiled Plan where id = 1, и его счетчик растет. но до тех пор, пока для дригих конкретных цифр в не запустят запрос 2 раза, используется параметризованный Compiled Plan, а с цифрой попадает только stub. у меня для простецкого запроса stub занимает 232 bytes, shell 24576 а настоящий параметризованный 40960 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 13:54
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
Crimeanа где тут "дырявость"?Crimean Код: c# 1.
Запрос должен быть константой, остальное параметрами. А тут помесь запроса и данных. Это дырявость. Во всех нормальных конторах за такое отрывают не только руки, но и яйца, и гонят в шею на колыму с занесением в чёрный список всех родственников до 12 колена. Или тема не раскрыта, или это костыль для говнопроектов (а их не менее чем половина). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 16:34
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
Mnior, это же тест который показывает "стабильный" запрос батчем (не параметризованный и не rpc) но с меняющимися значениями параметров ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 16:36
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
и - да - каноническая формулировка для показания доли говнопроектов в общей массе - "чуть менее, чем все" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 20:56
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
Ну тада слова " кто-то плотно разбирался с ..." в заголовке темы явно не актуальны. У гуру таких проблем должно быть поменьше. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 21:19
|
|||
---|---|---|---|
|
|||
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
pardon, Либо я не понял, либо что за стаб пишется в кэш планов??? "в кэш попадает не план, а stub," - че за? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 21:50
|
|||
---|---|---|---|
|
|||
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
pardon, Прочитал тут . Теперь понял, что за "стаб", в смысле заглушка! Т.е. хранится версия экономится место, но я всерно не понял, как это согласуется с темой что поднял ТС...где там про экономию памяти на стабах вместо планов, в первое выполнение? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 22:22
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
SomewhereSomehow, с загрузкой CPU и конкуренцией при парсинге еще вопросы - для этого и тему создал, времени нет детально погонять + воспроизводить не так однозначно выходит а по памяти при "одноразовых" запросах все просто и описано в доке, вот легко воспроизводимые данные: pardonу меня для простецкого запроса stub занимает 232 bytes, shell 24576 а настоящий параметризованный 40960 при сложных запросах (или тяжелых представлениях) разница будет еще больше ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 22:36
|
|||
---|---|---|---|
|
|||
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
Crimean, Дело в том, что при любых запросах и представлениях, оптимизатор строит не "стаб" (прости Господи), а нормальный план, и все ресурсы требуемые для этого он задействует, и цпу и память и т.д., другое дело "что" он сохранит "для потомков", т.е. для будущих таких же запросов - тут я врать не буду, не тестил, стаб, так стаб. Но экономия тут выходит, только за счет памяти для кэша, и только если запросы реально не повторяются более чем один. В иных случаях, лично я - прошу доказательств, ибо не верю также как в выборы =) И выгода за счет памяти в современных системах не так уж велика, видимо именно по этому - тема не раскрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 22:39
|
|||
---|---|---|---|
|
|||
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
В смысле, тема не раскрыта в интернетах. Иначе давно б уже было стабы/планы и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2012, 22:41
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
опять же, с картинкой с памятью более-менее остальное пока предмет для изучения ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.04.2012, 13:56
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
в продакшене стабов 26056, планов 7589. память, занятая планам меряется гигами. так что местами вполне себе имеет смысл ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.04.2012, 15:40
|
|||
---|---|---|---|
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
pardonнаверное чего-то не понимаю... почему и куда костыль? если не включать 'optimize for ad hoc workloads', все планы попадают в кэш. если включать, то на первый раз выполнения запроса в кэш попадает не план, а stub, у которого меньше размер и сидит он в кэше чтоб было известно, что такой-то запрос 1 раз уже выполняли. если приходит второй раз такой же запрос, то уже в кэш запишется и план. при чем тут вытесняемость? что при включенной опции, что без, как вытеснялись, так и будут вытесняться. идеализированно: если известно, что все запросы одноразовые, то надо включать, потому что вместо планов будут только stub-ы, т.е. экономия места. с другой стороны, если все запросы хотя бы по 2 раза будут выполняться, то не надо включать, т.к. план вместо того чтоб сразу попасть, как при выключенной опции, будет дожидаться, когда у stub-а счетчик станет 2. тогда план запишется, ну т.е. сервер его 2 раза высчитает, прежде чем в кэше запомнить Я попал на эту тему. Есть приложение многопоточное (C#), отсылающее однотипны запросы к БД. Все бы ничего, если не параметры типа стринг. Есно, возможные вариации комбинаций длин параметров приводили к загаживанию кеша планов. И виноват в это FW, любой версии до 4.0. В интернете на эту тему мало топиков. Я смог решить свою проблему путем перехода на FW 4.0 Так что виноват в этом "клиент" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.08.2012, 16:52
|
|||
---|---|---|---|
|
|||
кто-то плотно разбирался с "optimize for ad hoc workloads"? |
|||
#18+
озадачился вопросом о необходимости включения данного параметры для оптимизации работы сервера БД 1С, подскажите какие счётчики надо мониторить чтобы прийти к логичному умозаключению о надобности\не надобности данного параметра при работе сервера. Счётчика использования планов обслуживания в буферном кэше нету(или я был невнимателен, если упустил, поправьте ?). Читал вот эту статью http://blog.sqlauthority.com/2009/03/21/sql-server-200ptimize-for-ad-hoc-workloads-advance-performance-optimization/ рекомендуют включать данную опцию, собственно с описанным там согласен полностью. Интересует конкретика в плане организации запросов в 1С, много ли запросов с разовыми планами выполнения ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1685158]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 272ms |
0 / 0 |