powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Прошу совет по оптимизации запроса
9 сообщений из 59, страница 3 из 3
Прошу совет по оптимизации запроса
    #40121569
Begimot441
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fraks,

авторЕсть еще какие-то конкретные вопросы?

Если ДЛЯ ДАННОЙ КОНКРЕТНОЙ КОНФИГУРАЦИИ более рекомендаций не дашь, то огромное тебе спасибо!
13 сек - это вполне приемлимо в моем случае.
...
Рейтинг: 0 / 0
Прошу совет по оптимизации запроса
    #40121584
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begimot441
Если ДЛЯ ДАННОЙ КОНКРЕТНОЙ КОНФИГУРАЦИИ более рекомендаций не дашь

Покажи текущий вариант запроса, что у тебя получился.
Желательно без купюр.
...
Рейтинг: 0 / 0
Прошу совет по оптимизации запроса
    #40121587
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Результаты этого запроса в следующую систему каким образом попадают?
Через файл xls или иным способом?

Что там с вопросами на счет допустимости каментов в запросе?
Как пробовал, что значит "с комментариями не работает"?
...
Рейтинг: 0 / 0
Прошу совет по оптимизации запроса
    #40121595
Begimot441
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fraks,

авторРезультаты этого запроса в следующую систему каким образом попадают?
Через файл xls или иным способом?
В Системе есть возможность подключаться к ODBC-коннектам и вставлять в Систему SQL-запросы.
Этот запрос ты и оптимизируешь.
Расшифровка результатов запроса происходит по внутреннему механизму по тем покам, которые я там в запросе присваиваю.



авторЧто там с вопросами на счет допустимости каментов в запросе?
Как пробовал, что значит "с комментариями не работает"?
Я пробовал заводить запросы с комментариями. С комментариями они не функционируб\ют. Не помню, какая ошибка при этом в логе. С корректным определением ошибки в логах у нас тоже не айс.
...
Рейтинг: 0 / 0
Прошу совет по оптимизации запроса
    #40121663
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begimot441Оборудование перечислено в теблице *FOLDERS*. Но там оно не все. Если по
оборудованию еще не было отключений, оно туда еще и не попало.

Значит должна быть ещё одна таблица из которой оборудование и попадается в
таблицу FOLDERS. Поэтому, как я и сказал, надо просить полное описание всех
таблиц и полей данной базы у специалистов по ней.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Прошу совет по оптимизации запроса
    #40121825
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begimot441
fraks,
авторОгромный вопрос - зачем присоединять типа справочник, причем непонятно чего, что бы чего-то там дальше что-то обрабатывало?

Справичник оборудования (59 строк) и часов (24 строки) несут в себе коды. По этим кодам БД-приемник (куда я все это в итоге направляю) помещает данные по нужным тегам. (Это специализированная БД, менять я там ничего не могу)


авторЗачем эта информация без смысла, в дальнейшей обработке?
Если вопрос в том, зачем столько информации, в которой нули, то они нужны. Они ставят нули там, где вчера были единички.

Если нули нужны только для того что бы занулять некое табло, то можно просто разделить эти две манипуляциии.

1. Получаем простыню 59*24 с одними нулями - зачищаем прошлые результаты. Т.к это константа, можно вообще не из базы ее брать, не знаю как там у вас построено...
2. Получаем твой запрос без привязки к простыне - и заполняем только имеющиеся данные.
...
Рейтинг: 0 / 0
Прошу совет по оптимизации запроса
    #40121827
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begimot441
авторЧто там с вопросами на счет допустимости каментов в запросе?
Как пробовал, что значит "с комментариями не работает"?

Я пробовал заводить запросы с комментариями. С комментариями они не функционируб\ют. Не помню, какая ошибка при этом в логе. С корректным определением ошибки в логах у нас тоже не айс.
Вангую следующее.

Ты попробовал вместо комментария сделать псевдотаблицу, и нигде ее не использовать.
Тот сервер который у тебя (2.5.6) на такое ругается.

ДокументацияДо Firebird 2.5.8 если CTE объявлен, то он должен быть обязательно использован, в
противном случае возникает ошибка "CTE <cte> is not used in query". Начиная с Firebird 2.5.8
вместо ошибки выдаётся предупреждение;

Поэтому ты использовал этот target в следующем джойне, без всякого смысла, только что бы заткнуть ошибку.

Это у тебя отложилось как "нельзя писать комментарии", хотя наверняка можно.

В Firebird комментарии могут быть двух синтаксисов:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select -- все что правее двух минусов в текуще строке - комментарий

/* комментарий заключенный в такие парные ограничения */

select 
  /*
  в отличии от первого вида, 
  может быть многострочным
  */
...
Рейтинг: 0 / 0
Прошу совет по оптимизации запроса
    #40121831
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
--====================================================================================================
,eventListWithObj    AS (
------------------------------------------------------------------------------------------------------
SELECT
  eL.grp            as grp,
  fLd.Name          as Name,
  eL.dscr           as dscr,
  eL.beginDt        as beginDt,
  eL.endDate        as endDate
FROM comEvents eL
  LEFT JOIN FOLDERS fLd ON (eL.folderId = fLd.UID)
WHERE (left(fLd.Name, 7) = 'ЮП ГТЭС'      )
   or (left(fLd.Name,13) = 'ГПЭС Аггреко-')
   or (left(fLd.Name,11) = 'ГПЭС Зимнее'  )
   or (left(fLd.Name,10) = 'ГПЭС КНС-2'   )
)



Мне думается что можно сделать так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
--====================================================================================================
,eventListWithObj    AS (
------------------------------------------------------------------------------------------------------
SELECT
  eL.grp            as grp,
  fLd.Name          as Name,
  eL.dscr           as dscr,
  eL.beginDt        as beginDt,
  eL.endDate        as endDate
FROM comEvents eL
  LEFT JOIN FOLDERS fLd ON (eL.folderId = fLd.UID)
WHERE (fLd.LIBTYPE = 'Генератор')
)



Либо вообще не ставить условия.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
--====================================================================================================
,eventListWithObj    AS (
------------------------------------------------------------------------------------------------------
SELECT
  eL.grp            as grp,
  fLd.Name          as Name,
  eL.dscr           as dscr,
  eL.beginDt        as beginDt,
  eL.endDate        as endDate
FROM comEvents eL
  LEFT JOIN FOLDERS fLd ON (eL.folderId = fLd.UID)
)


Если же ограничение таки нужно - то его надо ставить ДО обработки данных а не при джойне результатов к справочнику.
...
Рейтинг: 0 / 0
Прошу совет по оптимизации запроса
    #40122060
Begimot441
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fraks,

Спасибо тебе за помощь!
Задача решена успешно.
...
Рейтинг: 0 / 0
9 сообщений из 59, страница 3 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Прошу совет по оптимизации запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]