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

Откуда:
Сообщений: 76
Добрый день. Есть запрос, который идет по индексу (запрос1) и аналогичный, только с переменными, идет мимо индексов (запрос2). Как вариант тыкать ему индекс, но все же почему так происходит, кто подскажет?
запрос1
SELECT id, endtime, amount, account
FROM ptks.dbo.payments_ (nolock)
WHERE
gateway_id=15
and statuscode=3
and endtime BETWEEN '2015-08-27' AND '2015-08-28'
ORDER BY id
запрос2
DECLARE @dt1 DATE = '2015-08-27',
@dt2 date = '2015-08-28'
SELECT
id, endtime, amount, account
FROM
ptks.dbo.payments_ (nolock)
WHERE
gateway_id=15
and statuscode=3
and endtime BETWEEN @dt1 AND @dt2
ORDER BY id
28 авг 15, 10:04    [18079599]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите почему идет мимо индекса  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
bananazury,

из-за разных алгоритмов оценки. в первом случае с константами используется гистограмма, а во втором случае с переменными оценка идет for UNKNOWN. используется density.
28 авг 15, 10:09    [18079621]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите почему идет мимо индекса  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
SQL Server: Optimizing Ad Hoc Statement Performance
SQL Server: Optimizing Stored Procedure Performance

тут хорошо расскажут
28 авг 15, 10:12    [18079629]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите почему идет мимо индекса  [new]
bananazury
Member

Откуда:
Сообщений: 76
а в двух словах, единое решение подставить индекс нужный? Или есть другой вариант? Спасибо
28 авг 15, 10:37    [18079791]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите почему идет мимо индекса  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21242
Используйте Hints.
28 авг 15, 10:58    [18079936]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите почему идет мимо индекса  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
bananazury
а в двух словах, единое решение подставить индекс нужный? Или есть другой вариант? Спасибо
OPTION(RECOMPILE)
28 авг 15, 22:23    [18083956]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить