Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц, летом дешевле!

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2009, 09:19   #1
Phantom
Пользователь
 
Аватар для Phantom
 
Регистрация: 08.06.2007
Сообщений: 59
Вопрос Оптимизация SQL запроса

Доброго времени суток коллеги...
Подскажите как оптимизировать данный SQL запрос:

Код:
SELECT contact.fio, contact.icq, comp.geo_id,(select count(*) as count from ticked_gruz where ticked_gruz.start_date>'2009-09-27' and ticked_gruz.place_from=comp.geo_id)rate_count
FROM contact,comp
WHERE contact.icq <> ''
AND comp.comp_id=contact.comp_id
AND comp.geo_id>0
Думаю что пояснений никаких не надо... тут все придельно просто...
Факт в том что не так давно данный запрос обрабатывал выборку из таблиц с тысячами и тысячами записей... и очень тормозил...

Нужно исправить, только вот не знаю как.

Помогите пожалуйста... Заранее большое спасибо.
Кто знал, тот знал точно. Кто не любит свет, тот и живет ночью.
Phantom вне форума Ответить с цитированием
Старый 24.09.2009, 10:38   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

ну и заранее - не забудьте рассказать про субд и ее версию
и для полноты картины неплохо бы еще структуру всех 3х таблиц

первое что бросается в глаза
надо не так
Код:
WHERE contact.icq <> ''
а так
Код:
WHERE contact.icq is not null

Последний раз редактировалось soleil@mmc; 24.09.2009 в 10:41.
soleil@mmc вне форума Ответить с цитированием
Старый 24.09.2009, 15:45   #3
Phantom
Пользователь
 
Аватар для Phantom
 
Регистрация: 08.06.2007
Сообщений: 59
По умолчанию

Хорошо вот файл (прилогаю) с общеми характеристиками таблиц...
СУБД MySQL5
Среда разработки Delphi7
Вложения
Тип файла: txt BD.txt (3.7 Кб, 141 просмотров)
Кто знал, тот знал точно. Кто не любит свет, тот и живет ночью.
Phantom вне форума Ответить с цитированием
Старый 24.09.2009, 15:48   #4
Phantom
Пользователь
 
Аватар для Phantom
 
Регистрация: 08.06.2007
Сообщений: 59
По умолчанию

А вот еще одна пометочка. запрос не рабочий...
Цитата:
AND comp.geo_id>0
Эта строчка вообще жуть...
Кто знал, тот знал точно. Кто не любит свет, тот и живет ночью.
Phantom вне форума Ответить с цитированием
Старый 24.09.2009, 16:07   #5
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

неплохо бы еще и типы привести
конкретно интересуют эти поля:
tg.start_date, tg.place_from, c2.geo_id, c2.comp_id, c1.comp_id
(мало ли какое там неявное приведение типов может работать...)

и добавь обязательно выделенное условие
Код:
SELECT 
  c1.fio, 
  c1.icq, 
  c2.geo_id,
  (select count(tg.*)
   from ticked_gruz tg
   where 0=0     
      and tg.place_from = c2.geo_id
      and tg.comp_id = c2.comp_id
      and tg.start_date > '2009-09-27' 
   ) rate_count
FROM 
  contact c1,
  comp c2
WHERE 0=0
    and c2.comp_id = c1.comp_id
    and c1.icq is not null
    and c2.geo_id is not null
З.Ы.: ну а для точного ответа все равно нужно текстовое изложение задачи
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц, летом дешевле!

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация sql запроса в хп eda SQL, базы данных 3 28.07.2009 11:57
Ошибка Sql запроса Yrok БД в Delphi 8 13.03.2009 09:08
Обработка SQL-запроса iid2007 Microsoft Office Access 2 10.07.2008 12:41
1С: debug SQL-запроса. crazy horse SQL, базы данных 0 05.06.2008 08:19