|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Добрый день! Из неиндексированной внешней таблицы осуществляется выборка, на основе которой далее делаются несколько других выборок с дополнительными условиями. Возможно ли сохранить каким-то образом исходную выборку, чтобы фильтровать уже с доп.условиями ее, а не всю исходную таблицу? Т.е., исходно есть цикл вида Код: sql 1.
А после того, проходят "уточняющие" подзапросы (критерии отбора условны) Код: sql 1. 2.
Преобразовать хочется во что-то типа Код: sql 1. 2. 3.
где VV - Код: sql 1.
Повторюсь, таблица внешняя, большая. Повторные "уточняющие" запросы выливаются в повторные проходы по всей таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 14:46 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Kirill Razuvaev> Возможно ли сохранить каким-то образом исходную выборку, Kirill Razuvaev> чтобы фильтровать уже с доп.условиями ее, а не всю исходную таблицу? Версия FB какая? GTT. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 14:56 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Kirill Razuvaev, делай в один проход, по ходу дела формируя результат(ы): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 14:57 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Kirill Razuvaev, нет ничего такого сделать нельзя. Максимум какой-нибудь трюк с переливкой в GTT и затем уже фильтровать по ней ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 14:58 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамВерсия FB какая? GTT.2.5.7 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 16:20 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
чччДделай в один проход, по ходу дела формируя результат(ы):К сожалению, это не реально. Первая выборка вообще идет по части полей с distinct. Остальные - "копают" глубже, но каждая в свою сторону. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 16:22 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Kirill Razuvaev> 2.5.7 Ну так юзай GTT, ты же не маленький. Там вопрос только когда её чистить - на автомате транзакцией или вручную в начале/конце ХП. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 16:30 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамНу так юзай GTTПохоже, придется в нее в цикле сначала скидывать "широкую" выборку, а дальше фильтровать из GTT с нужными фильтрами, очищаяя GTT между итерациями внешнего цикла. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 16:55 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Kirill Razuvaev> Похоже, придется ... дальше фильтровать из GTT с нужными фильтрами Это уже от твоих фильтров и механики зависит. Вариантов больше одного. Можно попытаться объединить фильтры в один и накатить разом. Если фильтры непересекающиеся и сортировка неважна - можно делать suspend в каждом цикле. В бщем, если хочешь чтобы подсказали, как лучше - уточняй про фильтры и как они формируются и может чего и придумаем. Kirill Razuvaev> очищаяя GTT между итерациями внешнего цикла. Что тут есть внешний цикл? Обращение к внешней таблице? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 17:08 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Если исходная выборка без дико сложного для движка СУБД условия, то повторная выборка должна быть существенно быстрее, ибо как минимум ОС кэширует считываемые данные. Я к тому, что сия возня, возможно, ничего и не даст. ...а может, и даст. Например, если в "хранимой промежуточной выборке" для последующей обработки задействуются индексы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 17:11 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
чччД> Если исходная выборка без дико сложного для движка СУБД условия, чччД> Я к тому, что сия возня, возможно, ничего и не даст. Кстати, да, проверять надо, если есть возможность. Всё-таки ET это не какой-то внешний источник/БД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2017, 17:17 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамЧто тут есть внешний цикл? Обращение к внешней таблице? Суть задачи - импорт внешних данных с нормализацией в соответствии со схемой БД. В импортируемой таблице три уровня данных и первичные ключи, соответственно, на первом уровне F1, на втором F1-F2, на третьем F1-F2-F3, если грубо. Плюс на каждом уровне дополнения из фильтров, чтобы пропустить (не добавлять, не обновлять) некоторые записи. Пока склоняюсь к необходимости такого эксперимента: 1. Последовательно выбираем из исходной таблицы все записи для каждого значения F1=x, и вставляем их в предварительно очищенную GTT. 2. Все "уточняющие" выборки делаем уже из GTT. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 10:28 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Kirill Razuvaev, нормальный вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 10:33 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Kirill Razuvaev> на первом уровне F1, на втором F1-F2, на третьем F1-F2-F3 Это очередной КЛАДР какой-то? > Пока склоняюсь к необходимости такого эксперимента: > 1. Последовательно выбираем из исходной таблицы все > записи для каждого значения F1=x, и вставляем их в GTT. Вариант как вариант, но в зависимости от объёмов данных я бы подумал о том, чтобы сразу залить все данные в одну или несколько GTT, вместо того чтобы для каждого F1 наружу запрос делать. Хотя если их очень много, то ХЗ. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 10:53 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Коллеги, пользуясь случаем, хотел бы еще привлечь внимание к ранее заданному мною вопросу, ответов на который пока не поступило: Сервером заменяется тип поля при группировке в представлении ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 10:58 |
|
Повторно использовать результаты выборки внутри ХП
|
|||
---|---|---|---|
#18+
Kirill RazuvaevГаджимурадов РустамЧто тут есть внешний цикл? Обращение к внешней таблице? Суть задачи - импорт внешних данных с нормализацией в соответствии со схемой БД. В импортируемой таблице три уровня данных и первичные ключи, соответственно, на первом уровне F1, на втором F1-F2, на третьем F1-F2-F3, если грубо. Плюс на каждом уровне дополнения из фильтров, чтобы пропустить (не добавлять, не обновлять) некоторые записи. Пока склоняюсь к необходимости такого эксперимента: 1. Последовательно выбираем из исходной таблицы все записи для каждого значения F1=x, и вставляем их в предварительно очищенную GTT. 2. Все "уточняющие" выборки делаем уже из GTT. Вот мне все равно непонятно чем не угоден вариант - загнать все скопом в GTT и уже работать с ней забыв про внешнюю таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 11:02 |
|
|
start [/forum/topic.php?fid=40&msg=39538770&tid=1561374]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 132ms |
0 / 0 |