Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зависание запроса, Огромное время выполнения 
:(
    Опции темы
S696S
Дата 13.6.2007, 04:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 13.11.2006

Репутация: нет
Всего: нет



Итак.

Выполнение данного запроса происходит за ужасно долгое время. Помогите выяснить причину. Причём на одном сервере таких проблем не было, а на нынешнем есть. Правда на этом сервере в таблице TBL_ANSWER_OPTIONS на порядок больше записей, нежели на старом.

Код

SELECT TBL_BASE_QUESTION_OPTIONS.id, TBL_BASE_LANG_QUESTION_OPTIONS.value, IFNULL( SUM( TBL_BASE_QUESTION_OPTIONS.score ) , 0 ) AS itog
FROM TBL_QUESTION_OPTIONS
INNER JOIN TBL_BASE_QUESTION_OPTIONS ON TBL_QUESTION_OPTIONS.BASE = TBL_BASE_QUESTION_OPTIONS.ID
LEFT JOIN TBL_ANSWER_OPTIONS ON TBL_QUESTION_OPTIONS.id = TBL_ANSWER_OPTIONS.a1
LEFT JOIN TBL_BASE_LANG_QUESTION_OPTIONS ON TBL_BASE_LANG_QUESTION_OPTIONS.answer = TBL_BASE_QUESTION_OPTIONS.id
LEFT JOIN TBL_ANSWER ON TBL_ANSWER.id = TBL_ANSWER_OPTIONS.answer
LEFT JOIN TBL_RECIPIENTS ON TBL_ANSWER.recipient = TBL_RECIPIENTS.id
WHERE TBL_BASE_LANG_QUESTION_OPTIONS.lang =2
AND TBL_RECIPIENTS.finish_status =2
AND TBL_QUESTION_OPTIONS.question
IN (

SELECT TBL_QUESTION.ID
FROM TBL_QUESTION
WHERE TBL_QUESTION.BASE =4304
)
GROUP
BY TBL_BASE_QUESTION_OPTIONS.id
ORDER BY TBL_BASE_QUESTION_OPTIONS.AORDER


Если сделать EXPLAIN, то видим следующее:

id    select_type    table    type    possible_keys    key    key_len    ref    rows    Extra
1    PRIMARY    TBL_ANSWER_OPTIONS    ALL    NULL    NULL    NULL    NULL    13785    Using temporary; Usingfilesort
1    PRIMARY    TBL_BASE_LANG_QUESTION_OPTIONS    ALL    NULL    NULL    NULL    NULL    33995    Using where
1    PRIMARY    TBL_QUESTION_OPTIONS    eq_ref    PRIMARY    PRIMARY    4    intresresear.TBL_ANSWER_OPTIONS.A1    1    Using where
1    PRIMARY    TBL_BASE_QUESTION_OPTIONS    eq_ref    PRIMARY    PRIMARY    4    intresresear.TBL_BASE_LANG_QUESTION_OPTIONS.ANSWER    1     
1    PRIMARY    TBL_ANSWER    eq_ref    PRIMARY    PRIMARY    4    intresresear.TBL_ANSWER_OPTIONS.ANSWER    1    Using where
1    PRIMARY    TBL_RECIPIENTS    eq_ref    PRIMARY    PRIMARY    4    intresresear.TBL_ANSWER.RECIPIENT    1    Using where
2    DEPENDENT SUBQUERY    TBL_QUESTION    unique_subquery    PRIMARY    PRIMARY    4    func    1    Using index; Using where


Причём, если смотреть Процессы, то на данном запросе стоит действие - copying to tmp table.

Помогите, пожалуйста, разобраться в чём дело и оптимизировать запрос.

Это сообщение отредактировал(а) S696S - 13.6.2007, 05:21
PM MAIL   Вверх
S696S
Дата 14.6.2007, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 13.11.2006

Репутация: нет
Всего: нет



Сам всё сделал. Правильно расставил индексы и всё прекрасно заработало. Можно тему удалить, как не представляющую особого интереса для окружающих).
PM MAIL   Вверх
nitr
Дата 15.6.2007, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: нет
Всего: 84



[offtopic]
S696S, зачем удалять - укажите ваше решение, может и кто-то свои комменты, да и может в будущем многим поможет!
[/offtopic]


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.