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

Откуда: UA
Сообщений: 1263
можно ли получить такую информацию(subj)?

-
Чудеса случаются. Это Вам любой программист скажет.
14 ноя 11, 22:30    [11596393]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Вот допустим есть приложение
раз в году запускается и строит какой-то отчет
получает данные каким-то запросом

Вот как Вы думаете, как можно узнать, что этот запрос использует какой-то индекс?
14 ноя 11, 22:35    [11596407]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
наутилус
Member

Откуда: UA
Сообщений: 1263
Паганель,
если хранить исходные данные, то можно что угодно.
можно ведь вытянуть "запросы, страдающие от блокировок". либо там "недостающие индексы".
14 ноя 11, 22:38    [11596412]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
нифига не понял
о каких исходных данных речь?
14 ноя 11, 22:40    [11596419]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
наутилус
Member

Откуда: UA
Сообщений: 1263
Паганель,

ну не поняли, ладно. )
данные об использовании/не использовании индексов сервер собирает. вопрос состоит в следующем: собирает ли он данные КАКИЕ запросы (текст запроса) используют данный индекс.
14 ноя 11, 22:44    [11596430]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Мне это представляется маловероятным

К сожалению, не все разработчики используют параметры
в результате один запрос
select c.name from children as c where parent_id = @p
превращается в несколько запросов
select c.name from children as c where parent_id = 223
и
select c.name from children as c where parent_id = 322
и
select c.name from children as c where parent_id = 555
и т.д.

По каждому из тысячи индексов хранить какую-то статистику использования еще куда ни шло
Но по миллионам запросов - это уж чересчур

Хотя я не админ, рассуждаю просто с позиций рабоче-крестьянской логики, так что могу ошибаться
14 ноя 11, 23:14    [11596495]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
наутилус
данные об использовании/не использовании индексов сервер собирает. вопрос состоит в следующем: собирает ли он данные КАКИЕ запросы (текст запроса) используют данный индекс.
Собирает, но не хранит (то есть хранит недолгое время).

Для получения данных можно, например, использовать sys.dm_exec_query_plan
14 ноя 11, 23:15    [11596499]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
Паганель
К сожалению, не все разработчики используют параметры
в результате один запрос
select c.name from children as c where parent_id = @p
превращается в несколько запросов
Новые версии разбирают такие случаи, называется "Простая параметризация "

http://msdn.microsoft.com/ru-ru/library/ms186219.aspx
14 ноя 11, 23:21    [11596509]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
alexeyvg,

круто, MSSQL даже в этом направлении развивается
14 ноя 11, 23:28    [11596527]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
наутилус
Member

Откуда: UA
Сообщений: 1263
alexeyvg
Собирает, но не хранит (то есть хранит недолгое время).

Для получения данных можно, например, использовать sys.dm_exec_query_plan

вот! если там есть текст запроса - это самое оно! завтра на работе проверю
я буду просто время от времени собирать эту выборку в другую бд, и потом уже анализировать.
Спасибо Вам большое!
15 ноя 11, 00:59    [11596700]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Паганель (8432)
alexeyvg (12955)
Новые версии разбирают такие случаи, называется "Простая параметризация"
круто, MSSQL даже в этом направлении развивается
У меня дежявю ... наоборот.
А вроде как 2011 - 2000 = 11 долбаных лет, не?
Или у меня провалы в памяти и я так быстро привык к 2005, что перенёс всё аж на 2000ый?

Тут вообще непаханное поле возможностей.
А sys.dm_* можно и периодически сохранять. А в общем виде ничего не решается.

КО
15 ноя 11, 02:22    [11596804]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
Mnior
Паганель (8432)
пропущено...
круто, MSSQL даже в этом направлении развивается
У меня дежявю ... наоборот.
А вроде как 2011 - 2000 = 11 долбаных лет, не?
Или у меня провалы в памяти и я так быстро привык к 2005, что перенёс всё аж на 2000ый?

Тут вообще непаханное поле возможностей.
Да, появилось это в 2000-ом, но вроде плохо работало...

И свойство PARAMETERIZATION у базы по моему появилось позже.
15 ноя 11, 09:00    [11597010]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
наутилус
alexeyvg
Собирает, но не хранит (то есть хранит недолгое время).

Для получения данных можно, например, использовать sys.dm_exec_query_plan

вот! если там есть текст запроса - это самое оно! завтра на работе проверю
я буду просто время от времени собирать эту выборку в другую бд, и потом уже анализировать.
Спасибо Вам большое!


Но зачем? Почему не начать сразу "нормально" писать запросы и проектировать БД?
15 ноя 11, 09:53    [11597160]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
наутилус
Member

Откуда: UA
Сообщений: 1263
SanyL
Но зачем? Почему не начать сразу "нормально" писать запросы и проектировать БД?

за шкафом (с)
потому что этот вопрос надо задать архитекторам и разработчикам 1С. которые используют динамические запросы и не позволяют каким либо образом "влиять" на "запросы" и "проектировать бд"
15 ноя 11, 10:49    [11597524]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
наутилус
SanyL
Но зачем? Почему не начать сразу "нормально" писать запросы и проектировать БД?

за шкафом (с)
потому что этот вопрос надо задать архитекторам и разработчикам 1С. которые используют динамические запросы и не позволяют каким либо образом "влиять" на "запросы" и "проектировать бд"


да, товарищи создавшие 1С еще те волшебники
15 ноя 11, 12:01    [11598096]     Ответить | Цитировать Сообщить модератору
 Re: какие запросы используют индекс?  [new]
наутилус
Member

Откуда: UA
Сообщений: 1263
SanyL,

не сыпь мне соль на раннууууууу (с) песня
15 ноя 11, 12:08    [11598171]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить