Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
Всем добрый день, подскажите пожалуйста как в Profiler-е посмотреть выполняется ли процедура из кеша? Вобщем-то не обязательно в Profiler-ре, мне главное узнать из Кеша он ее берет или нет.
И еще вопрос? : Можно ли SQL серверу задать принудительно держать процедуру в Кеше а потом выгрузить. Насколько я знаю этого сделать нельзя. Или все-таки можно?
18 янв 06, 10:12    [2264421]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
Насколько я знаю среди системных таблиц SQL сервера существует таблица в кот он содержит все текущие собтыя и их свойства. События - строки этой таблицы, а свойства - столбцы. Как правильно задать параметы запуска сканера Профиллера, что бы он мне отобразил кеширование процедур.

Насколко я знаю Это события: SP: CasheMiss и SP:CasheHit. - Как до них добраться?
18 янв 06, 10:26    [2264477]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
К тому же непонятно, что означают приставки к этим событиям:
SQL: ...
RPC: ...
SP: ...
События с RPC отображаются в профиллере без проблем. А вот с SP, не хотят. Может кто подскажет их значения и какую роль они играют?
18 янв 06, 10:32    [2264511]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
НУ?!... Неужели больше никто с этим не сталкивался?
18 янв 06, 10:47    [2264595]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37100
VasSerg
НУ?!... Неужели больше никто с этим не сталкивался?

А в чем, собственно говоря, проблема?
18 янв 06, 10:48    [2264601]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
Гавриленко Сергей Алексеевич

А в чем, собственно говоря, проблема?


У меня есть 4 процедуры, кот время от времени запускаются большое колличество раз. Т.е. ими не пользуются, а потом они в подряд запускаеются сразу раз так 200.
Дело в том что они содержат динамические запросы: формирую запрос как строку а потом ее запускаю на выполнение: exec ("Строка запроса").
Я заметил что эта процедура когда она остается в кеше выполняется в 3 раза бытсрее, чем если она не там. Это я проверял просто: Запустил 1й раз посмотрел в Профиллере потраченное время, и сразу запустил ее же с теми же параметрами и опять посмотрел. Во второй раз в 3 раза быстрее.

А вот когда идет выполнение всех 200-сот процедур, тогда вижу что времени на них тратиться так, как если бы они были не в Кеше. Вот и хочу проверить так ли это в действительности.
18 янв 06, 10:55    [2264633]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
Ведь если бы добится что бы они были все-таки в Кеше, то я получу более быстрый вариант отработки (причем сразу в 3 раза).
Интересно можно ли это сделать..
18 янв 06, 10:57    [2264645]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
Glory
Member

Откуда:
Сообщений: 104760
VasSerg

Насколко я знаю Это события: SP: CasheMiss и SP:CasheHit. - Как до них добраться?

Включить в трассу наверное
18 янв 06, 11:09    [2264704]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
Glory
Member

Откуда:
Сообщений: 104760
VasSerg
У меня есть 4 процедуры, кот время от времени запускаются большое колличество раз. Т.е. ими не пользуются, а потом они в подряд запускаеются сразу раз так 200.
Дело в том что они содержат динамические запросы: формирую запрос как строку а потом ее запускаю на выполнение: exec ("Строка запроса").

У exec() свой отдельный план выполнения, который никак не связан с планом процедуры.
18 янв 06, 11:11    [2264711]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
Glory
VasSerg

Насколко я знаю Это события: SP: CasheMiss и SP:CasheHit. - Как до них добраться?

Включить в трассу наверное


В том-то и дело что вкючаю, но события с SP: CasheMiss и SP:CasheHit не отображатся. Не понимаю почему. Может кто подскажет.
Может кто подскажет что вообще означают приставки: SP: .. ?
18 янв 06, 11:12    [2264721]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
VasSerg
Может кто подскажет что вообще означают приставки: SP: .. ?

А Вы в профайлере, когда их включали, не посмотрели на заголовок группы - "Stored Procedures"?
18 янв 06, 11:17    [2264746]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
Breakneck

А Вы в профайлере, когда их включали, не посмотрели на заголовок группы - "Stored Procedures"?

Сейчас раскажу по шагам. Может где-нибудь что-то не допонимаю:
- Запустил новую трассу
- Из Template name - выбрал пустой (blank)
- Закладка Events: из Stored Procedures беру только то, что меня тересует: Sp: CasheHit и Sp: CasheMiss
- Закладка DataColums: 2 свойства идут по умолчанию: EventClass и Spid. Добавляю сюда EventSubClass и ObjectId - по идее эти свойства должны быть для них заполнены.

И запускаю на выполнение. ... Моих процедур нет. (Есть другие, почему не видит мои не понятно)
18 янв 06, 11:27    [2264808]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
Crimean
Member

Откуда:
Сообщений: 13148
а рекомпиляций этих хранимок нет? это смотрели?
18 янв 06, 11:32    [2264839]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
Crimean
а рекомпиляций этих хранимок нет? это смотрели?

В смысле Alter Procedure ?
Периодически что-то изменяю. ... По правде сказать не понял вопроса. Где и что смотретьт?
18 янв 06, 11:43    [2264914]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
Crimean
а рекомпиляций этих хранимок нет? это смотрели?

В чем разница между Откомпилированной хранимой процедурой и Перекомпилированной?
18 янв 06, 12:17    [2265097]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
segun
Member

Откуда: Москва
Сообщений: 504
на эту тему есть очень хорошая статья - Batch Compilation, Recompilation, and Plan Caching Issues in SQL Server 2005
которая описывает поведение MSSQL версий 2000 и 2005. В частности, посмотрите в ней раздел - Identifying Recompilations
18 янв 06, 12:35    [2265188]     Ответить | Цитировать Сообщить модератору
 Re: Profiler: Как посмотреть, выполняется ли процедура из кеша?  [new]
VasSerg
Member

Откуда:
Сообщений: 28
segun

Спасибо, буду смотреть
18 янв 06, 12:50    [2265246]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить