Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Query Analizer must die ? / 18 сообщений из 18, страница 1 из 1
24.07.2002, 18:33:00
    #32038587
Предводитель команчей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
Доброе время суток, уважаемые.
Такая проблема : есть запрос, исполняемый в QA. Выполняется минуту. Смотрю на план запроса и вижу, что не используется индекс. Обновляю статистику, снова запускаю. Результат тот-же(выполняется 1 мунуту). Задаю принудительное использование индекса. Запрос отработал за 3 сек.
Запускаю этот же запрос, но без явного указания индекса, из EM (в режиме открыть таблицу...). Выполнилось за 3 сек.
Хотелось бы услышать ваши комментарии.
...
Рейтинг: 0 / 0
24.07.2002, 18:35:33
    #32038590
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
оптимизатор запросов иногда глючит, причем конкретно.
такие же приблуды были и уменя.
лечил так же, явными указаниями оптимизатору
...
Рейтинг: 0 / 0
24.07.2002, 18:53:12
    #32038600
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
Хотя бывает все, мне кажется, что QA здесь ни при чем, равно как и EM. Оба продукта прекрасно себя зарекомендовали.

Приведите запрос и необходимую информацию о схеме БД.

Кстати, по поводу хинтов в BOL сказано ясно:

Caution Because the query optimizer usually selects the best execution plan for a query, it is recommended that <join_hint>, <query_hint>, and <table_hint> be used only as a last resort by experienced database administrators.

Это я к тому, что лучше найти истинную причину проблемы, нежели 'починить' хинтами.
...
Рейтинг: 0 / 0
24.07.2002, 18:55:00
    #32038603
Предводитель команчей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
В данном случае нельзя однозначно утверждать, что глючит оптимизатор запросов. Ведь и из ХП и из ЕМ все работает правильно. Корявая работа наблюдаеться только с Query Analizer, а оптимизатор запросов является частью SQL сервера, а не QA.
И всвязи с этим возникает еще один вопрос - а что народ использует в качестве альтернативы QA ?
...
Рейтинг: 0 / 0
24.07.2002, 19:15:35
    #32038613
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
Перезагружать машину где установлен QA не пробовал? Серьезно. Часто помогает.

Еще неплохо бы перезагрузить сервер или хотя бы отключить все соединения с ним.

У меня была такая же ситуация - в QA не использовался индекс и запрос выполнялся более 1.5 часов (я не дождался окончания), а с индексами - пару секунд.

Впечатление такое, что мое соединение просто не знает о том, что обновилась статистика пока я не перезагружусь.
...
Рейтинг: 0 / 0
24.07.2002, 22:29:39
    #32038640
Doc
Doc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
НЕ МОЖЕТ ТАКОГО БЫТЬ ЧТО-БЫ ОДИН И ТОТ-ЖЕ ЗАПРОС В ОДИНАКОВОМ КОНТЕКСТЕ (isolation level etc.) ВЫПОЛНЯЛСЯ ПО-РАЗНОМУ В ЗАВИСИСМОСТИ ОТ ТОГО ОТКУДА ЕГО ЗАПУСКАЕШЬ. ЭТО РУКИ. СЕРВЕРУ ВСЕ РАВНО ОТКУДА ОН ПОЛУЧАЕТ ЗАПРОС . ВСЕ ОСТАЛЬНОЕ - ОТ ЛУКАВОГО.
...
Рейтинг: 0 / 0
24.07.2002, 22:53:56
    #32038641
AISOFT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
Оформите запрос в виде хранимой процедуры и для полноты добавьте with recomplile и все будет хорошо.
...
Рейтинг: 0 / 0
25.07.2002, 20:09:23
    #32038896
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
а контексты всетаки разные......
кому интерсно могт проверить....
...
Рейтинг: 0 / 0
26.07.2002, 09:51:52
    #32038954
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
2 Doc
Для меня самого было неожиданностью, но СЕРВЕРУ НЕ ВСЕ РАВНО ОТКУДА ОН ПОЛУЧАЕТ ЗАПРОС. Вернее что-то зависит от клиенткой части.
Например я делал процедуры для РНР, там был Юникс и старинные DB-Library. Так вот внутри процедуры во временных таблицах исчезали строки если в каком-нибудь из полей был null.
...
Рейтинг: 0 / 0
26.07.2002, 10:11:28
    #32038964
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
Невероятно, но факт, что запрос, выполняемый из разных приложений выполняется в некоторых случаях за разное время !
В моем случае, при введении option ( force order ) время выполнения запросов стало одинаковым.
...
Рейтинг: 0 / 0
26.07.2002, 12:21:30
    #32039036
Kommunarsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
А нет ли в запросе "IN (...)", например?
В этом случае Optimizer не использует индексы (как и в некоторых других случаях), поскольку не понимает, сколько значений сидит в "IN"...
...
Рейтинг: 0 / 0
26.07.2002, 12:23:44
    #32039041
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
если вопрос ко мне - то не использует
...
Рейтинг: 0 / 0
26.07.2002, 14:38:33
    #32039106
Предводитель команчей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
2Kommunarsk
В запросе используется IN, но, похоже это не влияет на подключение индекса, т.к. я убирал IN (...), а результат тот-же.
...
Рейтинг: 0 / 0
26.07.2002, 16:36:18
    #32039163
Kommunarsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
2Предводитель команчей

(Если мой вопрос/совет/ответ покажется Вам дилетантским - забудьте.)

1. А Вы пробовали "поиграть" с запросом (поизменять WHERE, начиная совсем без него) и посмотреть в Estimated Execution Plan, использует ли Optimizer Ваш индекс (-ксы) вообще (в случае без WHERE), и в какой момент он прекращает его использование?
2. А пробовали передефинировать индекс по-другому или запустить Index Tuning Wizard на этот запрос? Может, он посоветует другой индекс сделать, который потом будет использоваться...
...
Рейтинг: 0 / 0
26.07.2002, 16:42:17
    #32039167
Jimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
2 Kommunarsk
"При наличии отсутсвия" (с) фильтра, т.е. WHERE, оптимизатор не использует индексы, а производит сканирование таблицы.
...
Рейтинг: 0 / 0
26.07.2002, 16:56:49
    #32039177
Владимир Смирнов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
В некоторых случаях, например при наличии ORDED BY, сервер использует индексы, даже '"При наличии отсутсвия" (с) фильтра, т.е. WHERE'.
...
Рейтинг: 0 / 0
26.07.2002, 17:11:41
    #32039184
Jimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
2 Владимир Смирнов

Не спорю. ORDER BY & GROUP BY
...
Рейтинг: 0 / 0
26.07.2002, 17:20:36
    #32039188
Kommunarsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Query Analizer must die ?
2 Jimmy:
Спасибо.

Только кто нам сказал, что это - query по одной таблице? Цитирую: " ...есть запрос, исполняемый в QA... ". То есть, например, выборка из нескольких таблиц, с join-ами, или выборка из view... Плюс, конечно, возможные GROUP BY и ORDER BY.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Query Analizer must die ? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]