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

Откуда:
Сообщений: 80
Всем привет!
Наткнулся на непонятное поведение SQL сервера при выполнении следующего запроса:
 select 
       ul.UserID,
     ul.UserName,
     ul.[Login],
     ul.[Password],
     ul.UserType,
     ul.[Access],
     ul.PersonalID,
     ul.RoleID,
    r_dc.DISCONS_ID
    b_dc.DISCONS_ID
  from
    dbo.UsersList ul
    inner join dbo.Personal p on p.PersonalID=ul.PersonalID    
    left join CRM.mnt.POS pos on pos.PERSONNEL_ID=p.GlobalPersID collate database_default    
    left join CRM.mnt.DISCONS r_dc on
         r_dc.POS_ID=pos.POS_ID
        and r_dc.SYSCONS_ID in ('00000000090')
        and r_dc.SUPPORT_END is null    
    left join CRM.mnt.DISCONS b_dc on
         b_dc.POS_ID=pos.POS_ID
        and b_dc.SYSCONS_ID in ('00000000112','00000000114','00000000116','00000000118','00000000120','00000000310','00000000301')
        and b_dc.SUPPORT_END is null    
where     ul.UserID=197     

А мистика в том, что с условием запрос выполняется 30 секунд, если убрать условие и просмотреть все возможные результаты - 1 секунду. Как так?
POS, DISCONS - вьюхи.
Если закоментить один из DISCONS - выполняется моментально.
Сама вьюха выполняется пол секунды и содержит 20.000 записей.
Куда копать?
22 ноя 13, 12:17    [15173147]     Ответить | Цитировать Сообщить модератору
 Re: Мистический запрос  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Николай Н.
Куда копать?

Копать в сторону планов выполнения.
22 ноя 13, 12:20    [15173174]     Ответить | Цитировать Сообщить модератору
 Re: Мистический запрос  [new]
Николай Н.
Member

Откуда:
Сообщений: 80
Кстати есть одно но: запрос старый и работал нормально до сегодняшнего дня, сегодня забуксовал.
На неделе в паре таблиц добавили новые индексы. Может ли это быть причиной такого поведения? Новые индексы отключали толку ноль...
22 ноя 13, 12:27    [15173230]     Ответить | Цитировать Сообщить модератору
 Re: Мистический запрос  [new]
Николай Н.
Member

Откуда:
Сообщений: 80
Вот план:
Картинка с другого сайта.
верхний без условия, нижний с условием.
22 ноя 13, 12:44    [15173379]     Ответить | Цитировать Сообщить модератору
 Re: Мистический запрос  [new]
wizli
Member

Откуда: Minsk
Сообщений: 270
Николай Н.,
Это где у вас выводятся такие ужасные значки операторов плана запроса?
А если по теме, возможны проблемы с обновлением статистики. Пробовали обновлять?
22 ноя 13, 13:17    [15173662]     Ответить | Цитировать Сообщить модератору
 Re: Мистический запрос  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Николай Н.,

Было бы идеально, если бы вы выложили актуальные планы в виде файлов .sqlplan. (Кроме актуальных (actual), есть ещё предполагаемые (estimated) планы). По такой картинке трудно что-то понять, тем более тут не указаны имена таблиц.
22 ноя 13, 13:35    [15173821]     Ответить | Цитировать Сообщить модератору
 Re: Мистический запрос  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Николай Н.
Вот план:
верхний без условия, нижний с условием.
Почти наверняка ошибается в оценках на первом же Clustered Index Seek. Скорее всего это выборка по условию "where ul.UserID=197". Ну а оттуда уже пошло поехало. Как уже сказали - смотрите статистику.
Да и планы неплохо бы нормально выложить.
22 ноя 13, 22:27    [15177229]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить