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

Откуда:
Сообщений: 45
Сабж. Казалось бы без причины :(.
Есть следуюющий запрос (часть сохраненки)
select [ID],From_Left,To_Left,From_Right,To_Right from vw_StreetsSys
where (Prim_Name_ID=@Street_Name_ID or Sec_Name_ID=@Street_Name_ID) and
((((BR_LEFT between @BR_LEFT and @BR_RIGHT) and
(BR_TOP between @BR_TOP and @BR_BOTTOM)) or
((BR_RIGHT between @BR_LEFT and @BR_RIGHT) and
(BR_BOTTOM between @BR_TOP and @BR_BOTTOM))) or
((@BR_LEFT between BR_LEFT and BR_RIGHT) and
(@BR_TOP between BR_TOP and BR_BOTTOM)) or
((@BR_RIGHT between BR_LEFT and BR_RIGHT) and
(@BR_BOTTOM between BR_TOP and BR_BOTTOM)))

На одних и тех же данных, все было хорошо -- оптимизатор видел раздельные индексы для Ptim_Name_ID и Sec_Name_ID. И по ним шел красивый, быстрый seek. Вдруг, ни с того, ни с сего он решил что лучше будет скан, и начал сканить таблицу на 6 млн. :(
Ну как этому гаду мозги вправить что б не менял план ?
5 июн 03, 17:48    [223344]     Ответить | Цитировать Сообщить модератору
 Re: Слетает план.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Может индексы стали не селективными, может статистику давно не обновлял. Попробуй, укажи индексы явно.
5 июн 03, 17:56    [223359]     Ответить | Цитировать Сообщить модератору
 Re: Слетает план.  [new]
неважно кто
Guest
Таблица раздулась, селективность индекса упала, оптимизатор перешел на фулскан.

Можно сказать ему хинт WITH (INDEX( index_val [ ,...n ] ) ) для явного указания индекса.
5 июн 03, 17:58    [223366]     Ответить | Цитировать Сообщить модератору
 Re: Слетает план.  [new]
Fakas
Member

Откуда:
Сообщений: 45
Таблицы, участвующие в запросе не меняются. Ни на копейку. Хинт присобачить не могу, бо view. Отказаться от view весьма затруднительно. Хохма в том, что сначала план хороший. Он по ходу дела слетает :(.
5 июн 03, 18:01    [223378]     Ответить | Цитировать Сообщить модератору
 Re: Слетает план.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
А вьюшка индексированная?
5 июн 03, 18:07    [223395]     Ответить | Цитировать Сообщить модератору
 Re: Слетает план.  [new]
Fakas
Member

Откуда:
Сообщений: 45
Нет. А что, поможет ? Ее особо не проиндексируешь -- и так база за гигабайт. А это самая большая таблица. А есть требование,что б влезать на MSDE :(
5 июн 03, 18:28    [223425]     Ответить | Цитировать Сообщить модератору
 Re: Слетает план.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Ну попробуй тогда присабачить к запросу в конце OPTION (KEEPFIXED PLAN), и попробуй, мож поможет.
5 июн 03, 18:41    [223440]     Ответить | Цитировать Сообщить модератору
 Re: Слетает план.  [new]
Fakas
Member

Откуда:
Сообщений: 45
Попробую. Но не понятно :(. Какой план он KEEP... А вдруг плохой ?
5 июн 03, 18:57    [223450]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить