![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
![]()
Привет, есть запрос, он работает, возвращает нужные данные, но выполняется очень долго. Программа из которой он выполняется успевает совершить дисконект, помогите его оптимизировать, что бы он выполнялся быстрее
Код:
[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. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
что можно сделать по быстрому и по простому - проверьте и ОБЯЗАТЕЛЬНО добавьте индексы в таблицах
isdev поле id в таблице isdata поля tim device obem если это не поможет (или не допустимо), тогда остаётся только анализировать план запроса и изменять запрос. возможно, что решением проблемы будет просто переписать запрос вообще по другому. возможно, для решения проблемы нужно завести дополнительное поле (можно и вычисляемое) и хранить там дату в формате "m.Y" (с дополнительным полем - это уже крайний вариант. Тут минусов может быть больше, чем выигрыш на запросе. |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
![]() |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
всего!? для ВСЕХ внесенных показаний по каждому прибору ? от каждого внесенного времени по ...? за каждый месяц ?! Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 07.03.2019 в 10:39. |
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Код:
Категорически согласен!!!! |
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
(с последней даты предыдущего месяца до первой даты нового месяца) впрочем исходный запрос их также не учитывал. ![]()
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#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 |