|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
Добрый день. В Server Management Studio в отчетах сервера -> панель сервера есть диаграммы где среди прочих имен баз данных присутствует большой кусок диаграммы с названием Специальные запросы. Вот что это за запросы такие. В справке чтото не нашол. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 09:59 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
BM13В Server Management Studio в отчетах сервера -> панель сервера есть диаграммы где среди прочих имен баз данных присутствует большой кусок диаграммы с названием Специальные запросы. Вот что это за запросы такие. В справке чтото не нашол.Это так называются Ad Hoc Queries - "нерегламентированные пакеты", "нерегламентированные запросы" Из нельзя отнести к какой то БД, поэтому они вынесены отдельно. Собственно, остальное распределение на диаграмме тоже достаточно условно (хотя обычно достаточно точно показывает распределение нагрузки), потому что выполняемые запросы относятся к серверу, а не к конкретной базе данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 10:33 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
Спасибо. Свё ясно. Как я понял надо использовать forced parametrization или optimize for ad hoc workloads это как то может уменьшить нагрузку? Или может быть чемто чревато. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 10:49 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
BM13Как я понял надо использовать forced parametrization или optimize for ad hoc workloads это как то может уменьшить нагрузку? Или может быть чемто чревато.Если бы это помогало во всех случаях, то такого параметра бы не было :-) Первый параметр позволяет выделить параметры запросов, и хранить один план для одинаковых запросов с разными параметрами. Второй - вообще хранит не полный план, а предкомпилированный, уменьшая потребности в памяти для планов. Это может как увеличить произвовдительность, так и уменьшить, нужно тестировать. Если вы попробуете, это в любом случае данных в базах не сломает, так что нестрашно. Главное, нужно после переключения следить за нагрузкой и мерять последствия. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 10:57 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
alexeyvgBM13Как я понял надо использовать forced parametrization или optimize for ad hoc workloads это как то может уменьшить нагрузку? Или может быть чемто чревато.Если бы это помогало во всех случаях, то такого параметра бы не было :-) Первый параметр позволяет выделить параметры запросов, и хранить один план для одинаковых запросов с разными параметрами. Второй - вообще хранит не полный план, а предкомпилированный, уменьшая потребности в памяти для планов. Это может как увеличить произвовдительность, так и уменьшить, нужно тестировать. Если вы попробуете, это в любом случае данных в базах не сломает, так что нестрашно. Главное, нужно после переключения следить за нагрузкой и мерять последствия. буду пробовать. большое Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 11:07 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2015, 02:17 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
Mike_zaalexeyvg, тут как -то не совсем так написано?А в чём отличие? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2015, 11:52 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2015, 12:43 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
После первого раза, вообще ничего кроме текста не сохраняется. Втрой раз текст парсится по новой, оптимизируется, и уже сохраняется план в кеш. Или я не допонял? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2015, 23:37 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
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"), что то я такое помнил. Может и не так, может, просто текст хранится. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2015, 02:15 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
А во у меня есть большушие склейки с кучей инструкций скл. Я знаю, что они второй раз точно такие же не придут. Можно как-то сказать серверу, что бы он их не клал в кеш планов, Без взведения глобальных опций? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2015, 10:25 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
Mike_zaА во у меня есть большушие склейки с кучей инструкций скл. Я знаю, что они второй раз точно такие же не придут. Можно как-то сказать серверу, что бы он их не клал в кеш планов, Без взведения глобальных опций? option (recompile) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2015, 10:34 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
Shakill, Код: sql 1. 2. 3. 4.
в склейке несколько отдельных запросов. Даже если у них указывать у каждого эту опцию, то целиком весь пакет все равно кладется в кеш ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2015, 13:27 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2015, 13:39 |
|
Что такое 'Специальные запросы'?
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2015, 01:35 |
|
|
start [/forum/topic.php?fid=46&msg=38551533&tid=1697583]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
150ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 238ms |
total: | 486ms |
0 / 0 |