powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Что такое 'Специальные запросы'?
15 сообщений из 15, страница 1 из 1
Что такое 'Специальные запросы'?
    #38551460
BM13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
В Server Management Studio в отчетах сервера -> панель сервера есть диаграммы где среди прочих имен баз данных присутствует большой кусок диаграммы с названием Специальные запросы. Вот что это за запросы такие. В справке чтото не нашол.
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38551493
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BM13В Server Management Studio в отчетах сервера -> панель сервера есть диаграммы где среди прочих имен баз данных присутствует большой кусок диаграммы с названием Специальные запросы. Вот что это за запросы такие. В справке чтото не нашол.Это так называются Ad Hoc Queries - "нерегламентированные пакеты", "нерегламентированные запросы"

Из нельзя отнести к какой то БД, поэтому они вынесены отдельно.

Собственно, остальное распределение на диаграмме тоже достаточно условно (хотя обычно достаточно точно показывает распределение нагрузки), потому что выполняемые запросы относятся к серверу, а не к конкретной базе данных.
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38551510
BM13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Свё ясно.
Как я понял надо использовать forced parametrization или optimize for ad hoc workloads это как то может уменьшить нагрузку? Или может быть чемто чревато.
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38551524
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BM13Как я понял надо использовать forced parametrization или optimize for ad hoc workloads это как то может уменьшить нагрузку? Или может быть чемто чревато.Если бы это помогало во всех случаях, то такого параметра бы не было :-)

Первый параметр позволяет выделить параметры запросов, и хранить один план для одинаковых запросов с разными параметрами. Второй - вообще хранит не полный план, а предкомпилированный, уменьшая потребности в памяти для планов.

Это может как увеличить произвовдительность, так и уменьшить, нужно тестировать.
Если вы попробуете, это в любом случае данных в базах не сломает, так что нестрашно. Главное, нужно после переключения следить за нагрузкой и мерять последствия.
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38551533
BM13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgBM13Как я понял надо использовать forced parametrization или optimize for ad hoc workloads это как то может уменьшить нагрузку? Или может быть чемто чревато.Если бы это помогало во всех случаях, то такого параметра бы не было :-)

Первый параметр позволяет выделить параметры запросов, и хранить один план для одинаковых запросов с разными параметрами. Второй - вообще хранит не полный план, а предкомпилированный, уменьшая потребности в памяти для планов.

Это может как увеличить произвовдительность, так и уменьшить, нужно тестировать.
Если вы попробуете, это в любом случае данных в базах не сломает, так что нестрашно. Главное, нужно после переключения следить за нагрузкой и мерять последствия.
буду пробовать.
большое Спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Что такое 'Специальные запросы'?
    #38996439
Mike_za
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg, тут как -то не совсем так написано?


авторEven though these two queries are essentially identical, they might each have a separate plan in the cache, just because the literal value is different in each case. Actually these two queries are so simple (with no joins) that SQL Server would probably parameterize them, even using just the default simple parameterization (as opposed to forced parameterization). However, in more complex cases, plan reuse would probably not be possible. While we can do our best to make sure queries are written in a way that enables plan reuse, users and utilities often execute batches that will simply have little reuse.
For SQL Server 2008, if you determine that you have a mostly ad hoc workload with minimal reuse, check out the "optimize for ad hoc workloads" system option. This setting changes SQL Server behavior and does not store a plan on first usage, only the query text. If it matches a second time, the plan is stored. Note that "ad hoc," in this sense, does vary from some people's understanding of the term. Here, it simply refers to the use of random queries that don't promote reuse.
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38996686
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike_zaalexeyvg, тут как -то не совсем так написано?А в чём отличие?
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38996780
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
alexeyvgMike_zaalexeyvg, тут как -то не совсем так написано?А в чём отличие?
Mike_zaThis setting changes SQL Server behavior and does not store a plan on first usage, only the query text . If it matches a second time, the plan is stored.
alexeyvgВторой - вообще хранит не полный план, а предкомпилированный, уменьшая потребности в памяти для планов.

формально можно придраться, что в ИХ тексте пишут, что только *текст* хранится в первый раз,
а вы пишете, что "неполный план".
ну и да, забываете уточнить, что при повторном выполнении того же самого, план уже будет сохранен.

предлагаю улучшенную формулировку:

The optimize for ad hoc workloads option is used to improve the efficiency of the plan cache for workloads that contain many single use ad hoc batches.
When this option is set to 1, the Database Engine stores a small compiled plan stub
in the plan cache when a batch is compiled for the first time , instead of the full compiled plan.
This helps to relieve memory pressure by not allowing the plan cache to become filled with compiled plans that are not reused.
The compiled plan stub allows the Database Engine to recognize that this ad hoc batch has been compiled before
but has only stored a compiled plan stub, so when this batch is invoked (compiled or executed) again , the Database Engine compiles the batch,
removes the compiled plan stub from the plan cache, and adds the full compiled plan to the plan cache .
optimize for ad hoc workloads Server Configuration Option
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38997352
Mike_za
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После первого раза, вообще ничего кроме текста не сохраняется. Втрой раз текст парсится по новой, оптимизируется, и уже сохраняется план в кеш. Или я не допонял?
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38997416
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o-oпредлагаю улучшенную формулировку:

The optimize for ad hoc workloads option is used to improve the efficiency of the plan cache for workloads that contain many single use ad hoc batches.
When this option is set to 1, the Database Engine stores a small compiled plan stub
Mike_zaПосле первого раза, вообще ничего кроме текста не сохраняется. Втрой раз текст парсится по новой, оптимизируется, и уже сохраняется план в кеш. Или я не допонял?
Про заглушку не знал, я думал, там плана вообще нет...

Я как раз про хранение SQL, я имел в виду, что хранится не обычный текст запроса, а некий результат синтаксического анализа, типа семантического дерева запроса ("У каждой заглушки есть уникальный дескриптор SQL"), что то я такое помнил. Может и не так, может, просто текст хранится.
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38997533
Mike_za
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А во у меня есть большушие склейки с кучей инструкций скл. Я знаю, что они второй раз точно такие же не придут. Можно как-то сказать серверу, что бы он их не клал в кеш планов,
Без взведения глобальных опций?
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38997538
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike_zaА во у меня есть большушие склейки с кучей инструкций скл. Я знаю, что они второй раз точно такие же не придут. Можно как-то сказать серверу, что бы он их не клал в кеш планов,
Без взведения глобальных опций?
option (recompile) ?
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38997837
Mike_za
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill,
Код: sql
1.
2.
3.
4.
select *** from *** option(recompile)
select *** from ***
select *** from *** option(recompile)
select *** from ***



в склейке несколько отдельных запросов. Даже если у них указывать у каждого эту опцию, то целиком весь пакет все равно кладется в кеш
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #38997867
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike_zaДаже если у них указывать у каждого эту опцию, то целиком весь пакет все равно кладется в кеш

An ad-hoc execution plan is inserted and is not referenced again before memory pressure exists. Since ad-hoc plans are initialized with a current cost of zero, when the database engine examines the execution plan, it will see the zero current cost and remove the plan from the procedure cache. The ad-hoc execution plan remains in the procedure cache with a zero current cost when memory pressure does not exist.
...
Рейтинг: 0 / 0
Что такое 'Специальные запросы'?
    #39005211
Mike_za
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg, нашел, кажись

авторthe compiled plan stub
The stub that SQL Server caches when Optimize for Ad Hoc Workloads is enabled is only about 300 bytes in size and doesn’t contain any part of a query execution plan. It’s mainly just a placeholder to keep track of whether a particular query was compiled previously. The stub contains the full cache key and a pointer to the actual query text, which is stored in the SQL Manager cache. Later, the section “Plan cache internals” discusses cache keys and the SQL Manager. The usecounts value in the cache metadata is always 1 for compiled plan stubs because they are never reused.
When a query or batch that generated a compiled plan stub is recompiled, the stub is replaced with the full compiled plan. Initially, the usecounts value is set to 1 because the previous query isn’t guaranteed to have exactly the same execution plan. All that’s known is that the query itself is the same. I will execute some of the same queries used in the previous section after enabling the Op- timize for Ad Hoc Workloads option, so you can see what the usecounts query displays. I need to modify my usecounts query slightly, and rather than look for rows that have a cacheobjtype value of Compiled Plan
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Что такое 'Специальные запросы'?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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