|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.03.2019, 10:01 | #1 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
Оптимизация SQL запроса
Привет, есть запрос, он работает, возвращает нужные данные, но выполняется очень долго. Программа из которой он выполняется успевает совершить дисконект, помогите его оптимизировать, что бы он выполнялся быстрее
Код:
[Err] 2013 - Lost connection to MySQL server during query Задача запроса выдать таблицу: Номер счетчика | Дата | Сколько прошло через него воды Таблица isdev: id:int A_I // индекс ad:int // адрес устройства name:varchar // название устройства object:int // индекс объекта из таблицы isobjects discript:varchar // описание Таблица isdata: id:int A_I // индекс device:int // id из таблицы isdev rashod:float // показания текущего расхода height:float // показания уровня жидкости в баке narabotka:float // наработка устройства obem:float // перекаченный объем воды tim:int // дата и время в UNIXTIME Последний раз редактировалось PTyTb32; 07.03.2019 в 10:19. |
07.03.2019, 10:09 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
что можно сделать по быстрому и по простому - проверьте и ОБЯЗАТЕЛЬНО добавьте индексы в таблицах
isdev поле id в таблице isdata поля tim device obem если это не поможет (или не допустимо), тогда остаётся только анализировать план запроса и изменять запрос. возможно, что решением проблемы будет просто переписать запрос вообще по другому. возможно, для решения проблемы нужно завести дополнительное поле (можно и вычисляемое) и хранить там дату в формате "m.Y" (с дополнительным полем - это уже крайний вариант. Тут минусов может быть больше, чем выигрыш на запросе. |
07.03.2019, 10:23 | #3 | |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
Цитата:
|
|
07.03.2019, 10:28 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
07.03.2019, 10:30 | #5 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
|
07.03.2019, 10:37 | #6 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
всего!? для ВСЕХ внесенных показаний по каждому прибору ? от каждого внесенного времени по ...? за каждый месяц ?! Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 07.03.2019 в 10:39. |
|
07.03.2019, 10:38 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Код:
Категорически согласен!!!! |
|
07.03.2019, 10:50 | #8 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
(с последней даты предыдущего месяца до первой даты нового месяца) впрочем исходный запрос их также не учитывал.
программа — запись алгоритма на языке понятном транслятору
|
|
07.03.2019, 10:54 | #9 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
периоды, приборы задаются в WHERE, в программе он есть, а для запроса убрал... он те так важен. параметры можно настроить таким образом что будет охвачен весь диапазон, за решение моей проблемы большое спасибо)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оптимизация запроса. | EnMac | SQL, базы данных | 20 | 15.04.2015 15:11 |
Оптимизация запроса | russian-stalker | SQL, базы данных | 1 | 11.10.2011 13:17 |
Оптимизация запроса | stalsoft | SQL, базы данных | 0 | 05.07.2011 14:51 |
оптимизация запроса | pray_driver | SQL, базы данных | 3 | 13.12.2010 15:40 |
Оптимизация SQL запроса | Phantom | SQL, базы данных | 4 | 24.09.2009 16:07 |