powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Результат SELECT как объект
9 сообщений из 9, страница 1 из 1
Результат SELECT как объект
    #40029620
Sirius220
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Подскажите, есть Firebird 3.0 и на нем есть большая процедура с аналитикой данных. В процессе работы процедуры несколько раз вызывается один и тот же select.
Можно ли каким либо путём, в переменную, занести данные один раз, скажем в начале работы процедуры, а потом уже обращаться к результатам того селекта несколько раз?
...
Рейтинг: 0 / 0
Результат SELECT как объект
    #40029625
Dovran184
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sirius220,

rdb$set_context? GTT?

Удачи !
...
Рейтинг: 0 / 0
Результат SELECT как объект
    #40029626
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sirius220,

есть два варианта.

1. Написать оптимально select так чтобы он был всего один и расчитывал сразу всё.
2. Сохранить результаты того select в GTT и уже из неё дёргать результат лёгким запросом.

1 вариант предпочтительней. Второй лучше использовать когда уж совсем никак.

Есть ещё один случай. Если первый селект всегда возвращает только одну строку то можно использовать курсорную переменную, например вот так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
FOR SELECT ...
    AS CURSOR C
DO 
BEGIN
  // сложные расчёты
  IF (:C.FIELD1 = 5 AND :C:FIELD2 = 3) THEN
  ...
  SELECT COUNT(*)
  FROM ...
  WHERE T.A = :C.FIELD1
  INTO ...
 .....
END
...
Рейтинг: 0 / 0
Результат SELECT как объект
    #40029632
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sirius220,

аналитика - это DWH, они же кубы.

факты, атрибуты, измерения, агрегаты, значения

я раскидываю предметную область в 5 табличек TMP$ и дальше творю с ними что попало

единственная проблема - не/использование индексов, но мы с этим успешно боремся обходим через execute statement
...
Рейтинг: 0 / 0
Результат SELECT как объект
    #40029703
Sirius220
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всех благодарю за подсказки. Буду копать.
...
Рейтинг: 0 / 0
Результат SELECT как объект
    #40029739
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor
единственная проблема - не/использование индексов, но мы с этим успешно боремся обходим через execute statement
актуализируешь статистику по ходу дела?
...
Рейтинг: 0 / 0
Результат SELECT как объект
    #40029744
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
pastor
единственная проблема - не/использование индексов, но мы с этим успешно боремся обходим через execute statement
актуализируешь статистику по ходу дела?


по четвертому кругу :(

все происходит внутри одной ХП.

набивка данных и пяток анализов

внутри ХП статистику не пересоберешь, оставлять данные пересобирать на потом - дело, чреватое неопределенностью
...
Рейтинг: 0 / 0
Результат SELECT как объект
    #40029752
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastorпо четвертому кругу :(

Да хоть по десятому пока до тебя не дойдёт, что статистику можно (и нужно) собрать всего
однажды, набив эту табличку ручками.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Результат SELECT как объект
    #40029765
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

pastorпо четвертому кругу :(

Да хоть по десятому пока до тебя не дойдёт, что статистику можно (и нужно) собрать всего
однажды, набив эту табличку ручками.


хм. может быть я знаю про такую возможность, но есть причины, по которым этот вариант не подходит?

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


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