|
|
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
Доброе время суток, уважаемые. Такая проблема : есть запрос, исполняемый в QA. Выполняется минуту. Смотрю на план запроса и вижу, что не используется индекс. Обновляю статистику, снова запускаю. Результат тот-же(выполняется 1 мунуту). Задаю принудительное использование индекса. Запрос отработал за 3 сек. Запускаю этот же запрос, но без явного указания индекса, из EM (в режиме открыть таблицу...). Выполнилось за 3 сек. Хотелось бы услышать ваши комментарии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2002, 18:33:00 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
оптимизатор запросов иногда глючит, причем конкретно. такие же приблуды были и уменя. лечил так же, явными указаниями оптимизатору ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2002, 18:35:33 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
Хотя бывает все, мне кажется, что 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. Это я к тому, что лучше найти истинную причину проблемы, нежели 'починить' хинтами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2002, 18:53:12 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
В данном случае нельзя однозначно утверждать, что глючит оптимизатор запросов. Ведь и из ХП и из ЕМ все работает правильно. Корявая работа наблюдаеться только с Query Analizer, а оптимизатор запросов является частью SQL сервера, а не QA. И всвязи с этим возникает еще один вопрос - а что народ использует в качестве альтернативы QA ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2002, 18:55:00 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
Перезагружать машину где установлен QA не пробовал? Серьезно. Часто помогает. Еще неплохо бы перезагрузить сервер или хотя бы отключить все соединения с ним. У меня была такая же ситуация - в QA не использовался индекс и запрос выполнялся более 1.5 часов (я не дождался окончания), а с индексами - пару секунд. Впечатление такое, что мое соединение просто не знает о том, что обновилась статистика пока я не перезагружусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2002, 19:15:35 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
НЕ МОЖЕТ ТАКОГО БЫТЬ ЧТО-БЫ ОДИН И ТОТ-ЖЕ ЗАПРОС В ОДИНАКОВОМ КОНТЕКСТЕ (isolation level etc.) ВЫПОЛНЯЛСЯ ПО-РАЗНОМУ В ЗАВИСИСМОСТИ ОТ ТОГО ОТКУДА ЕГО ЗАПУСКАЕШЬ. ЭТО РУКИ. СЕРВЕРУ ВСЕ РАВНО ОТКУДА ОН ПОЛУЧАЕТ ЗАПРОС . ВСЕ ОСТАЛЬНОЕ - ОТ ЛУКАВОГО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2002, 22:29:39 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
Оформите запрос в виде хранимой процедуры и для полноты добавьте with recomplile и все будет хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2002, 22:53:56 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
а контексты всетаки разные...... кому интерсно могт проверить.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2002, 20:09:23 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
2 Doc Для меня самого было неожиданностью, но СЕРВЕРУ НЕ ВСЕ РАВНО ОТКУДА ОН ПОЛУЧАЕТ ЗАПРОС. Вернее что-то зависит от клиенткой части. Например я делал процедуры для РНР, там был Юникс и старинные DB-Library. Так вот внутри процедуры во временных таблицах исчезали строки если в каком-нибудь из полей был null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 09:51:52 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
Невероятно, но факт, что запрос, выполняемый из разных приложений выполняется в некоторых случаях за разное время ! В моем случае, при введении option ( force order ) время выполнения запросов стало одинаковым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 10:11:28 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
А нет ли в запросе "IN (...)", например? В этом случае Optimizer не использует индексы (как и в некоторых других случаях), поскольку не понимает, сколько значений сидит в "IN"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 12:21:30 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
если вопрос ко мне - то не использует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 12:23:44 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
2Kommunarsk В запросе используется IN, но, похоже это не влияет на подключение индекса, т.к. я убирал IN (...), а результат тот-же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 14:38:33 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
2Предводитель команчей (Если мой вопрос/совет/ответ покажется Вам дилетантским - забудьте.) 1. А Вы пробовали "поиграть" с запросом (поизменять WHERE, начиная совсем без него) и посмотреть в Estimated Execution Plan, использует ли Optimizer Ваш индекс (-ксы) вообще (в случае без WHERE), и в какой момент он прекращает его использование? 2. А пробовали передефинировать индекс по-другому или запустить Index Tuning Wizard на этот запрос? Может, он посоветует другой индекс сделать, который потом будет использоваться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 16:36:18 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
2 Kommunarsk "При наличии отсутсвия" (с) фильтра, т.е. WHERE, оптимизатор не использует индексы, а производит сканирование таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 16:42:17 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
В некоторых случаях, например при наличии ORDED BY, сервер использует индексы, даже '"При наличии отсутсвия" (с) фильтра, т.е. WHERE'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 16:56:49 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
2 Владимир Смирнов Не спорю. ORDER BY & GROUP BY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 17:11:41 |
|
||
|
Query Analizer must die ?
|
|||
|---|---|---|---|
|
#18+
2 Jimmy: Спасибо. Только кто нам сказал, что это - query по одной таблице? Цитирую: " ...есть запрос, исполняемый в QA... ". То есть, например, выборка из нескольких таблиц, с join-ами, или выборка из view... Плюс, конечно, возможные GROUP BY и ORDER BY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 17:20:36 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1821538]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 315ms |

| 0 / 0 |
