Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 query hash statistics vs query statistics  [new]
beaver06
Member

Откуда:
Сообщений: 681
Добрый день!
Для сбора и анализа производительности запросов использую Data Collection.
При рабочей нагрузке Collection set Query Statistics очень долго отправляет (upload) данные в MDW database. Обычно сваливается с ошибкой: The thread "ExecMasterPackage" has timed out 3600 seconds after being signaled to stop.
Нашел статью посвещенную Query Hash Statistics. Даееый set отрабатывает очень быстро.
http://archive.msdn.microsoft.com/QueryHashStatistics/Wiki/View.aspx?title=QhsQuickStart&referringTitle=Home
Так вот в чем разница между query hash statistics и query statistics? Не могу понять.
http://archive.msdn.microsoft.com/QueryHashStatistics/Wiki/View.aspx?title=QhsCompareToInBoxCollectionSet&referringTitle=Home
4 окт 12, 10:36    [13265873]     Ответить | Цитировать Сообщить модератору
 Re: query hash statistics vs query statistics  [new]
beaver06
Member

Откуда:
Сообщений: 681
Никто не знает?
Что все-таки такое Query Hash Statistics?
4 окт 12, 14:40    [13268058]     Ответить | Цитировать Сообщить модератору
 Re: query hash statistics vs query statistics  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Всё очень просто. Есть планы запросов и у них подсчитывается Hash.
Если запрос долго не используется он "вымывается" - забывается, а также и его статистика. Если вы запустите тот же запрос, то план сгенерируется заново, но будет считать что это как бы первый раз запускается.
Но появился Query Hash Statistics, которая не удаляет статистику вместе с вымыванием, но данная статистика не хранит ничего о первоначальном запросе. Если он запустится заново, то у него будет тот же Hash и статистика наложится.
Но. Может быть другой запрос с таким же Hash и они смешаются, но это маловероятно.
4 окт 12, 15:17    [13268415]     Ответить | Цитировать Сообщить модератору
 Re: query hash statistics vs query statistics  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Mnior
Всё очень просто. Есть планы запросов и у них подсчитывается Hash.
Если запрос долго не используется он "вымывается" - забывается, а также и его статистика. Если вы запустите тот же запрос, то план сгенерируется заново, но будет считать что это как бы первый раз запускается.
Но появился Query Hash Statistics, которая не удаляет статистику вместе с вымыванием, но данная статистика не хранит ничего о первоначальном запросе. Если он запустится заново, то у него будет тот же Hash и статистика наложится.
Но. Может быть другой запрос с таким же Hash и они смешаются, но это маловероятно.
А по-моему совсем наоборот. Query Hash как раз и нужен чтобы находить похожие запросы, которые по каким то причинам получили разные планы (plan_handle), что собственно и написано в определении:
query_hash - Binary hash value calculated on the query and used to identify queries with similar logic. You can use the query hash to determine the aggregate resource usage for queries that differ only by literal values.
Смысл как раз в том чтобы сгруппировать такие запросы и получить общую нагрузку которую они создают, а не для каждого по отдельности.
А статистика вроде выкидывается из кэша иррелевантно к тому что используется, plan_handle или query_hash.

Чтиво:
http://msdn.microsoft.com/en-ca/library/ms189741(v=sql.105).aspx
http://msdn.microsoft.com/en-ca/library/cc645887(v=sql.105).aspx

Не путать с query_plan_hash, это совсем другая история.
4 окт 12, 20:16    [13270393]     Ответить | Цитировать Сообщить модератору
 Re: query hash statistics vs query statistics  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Mind
А по-моему совсем наоборот
Вы уверены что именно наоборот?
Посыл вроде как тот же. Про план согласен, можно было даже не упоминать, просто ради них всё и кэшируется.
Спасибо что поправили. Да, именно хеш запроса.
4 окт 12, 21:48    [13270582]     Ответить | Цитировать Сообщить модератору
 Re: query hash statistics vs query statistics  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Mnior
Mind
А по-моему совсем наоборот
Вы уверены что именно наоборот?
Посыл вроде как тот же. Про план согласен, можно было даже не упоминать, просто ради них всё и кэшируется.
Спасибо что поправили. Да, именно хеш запроса.
Наоборот По-другому.
И кстати, если запрос удален из кэша, а потом запустить его еще раз, то у него не только query_hash будет тот же, но даже и plan_handle.
Мало того, если план поменяется, скажем из-за того что удален индекс или наоборот создан и теперь используется в плане, то plan_handle останется тот же, хотя план может быть совсем другой.
4 окт 12, 23:26    [13270874]     Ответить | Цитировать Сообщить модератору
 Re: query hash statistics vs query statistics  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Mnior
Но появился Query Hash Statistics
Как я понимаю, ничего не появилось, всё по прежнему.
Mind
Query Hash как раз и нужен чтобы находить похожие запросы, которые по каким то причинам получили разные планы (plan_handle), что собственно и написано в определении:
query_hash - Binary hash value calculated on the query and used to identify queries with similar logic. You can use the query hash to determine the aggregate resource usage for queries that differ only by literal values.
Смысл как раз в том чтобы сгруппировать такие запросы и получить общую нагрузку которую они создают, а не для каждого по отдельности.
Ну ту особо ничего нету и ничего не изменилось.
similar logic тут притянуто за уши. На самом деле это полностью идентичные запросы, просто с разными литералами.
Запрос параметризуется - вместо констант подставляются параметры (@1, @2 ...), но компилируется с заданными значениями (как и процедуры). Поэтому итоговый текст запроса практически идентичный. Планы могут быть разные.
Вроде как есть механизмы, что в зависимости от диапазона значений литералов будут выбираться тот или иной план (из уже закэшированных).

Просто это уже вам решать как читать/считать статистику. Группировать, сравнивать, следить за изменениями и т.п.
5 окт 12, 01:00    [13271058]     Ответить | Цитировать Сообщить модератору
 Re: query hash statistics vs query statistics  [new]
beaver06
Member

Откуда:
Сообщений: 681
Mnior,

По Query Hash Statistics реально проанализировать плохие запросы?
Это стопроцентная стаистика?
5 окт 12, 13:41    [13273813]     Ответить | Цитировать Сообщить модератору
 Re: query hash statistics vs query statistics  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Почему вопрос лично мне?

Всё можно, и по кофейной гуще.
Но если вы задаёте такие вопросы то не поможет. Тот что умеет оптимизировать уже знает где и как искать.
Может вам к специалисту?
5 окт 12, 16:49    [13275422]     Ответить | Цитировать Сообщить модератору
 Re: query hash statistics vs query statistics  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
beaver06
Mnior,

По Query Hash Statistics реально проанализировать плохие запросы?
Это стопроцентная стаистика?
Реально, если знать что анализируешь.
Нет, не 100%. Некоторые планы не попадают в статисткику вообще. и если не собирать статистику периодически, то она очищается когда план выкидывается из кэша.
5 окт 12, 19:15    [13276150]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить