выборка из заранее неизвестного множества таблиц
выборка из заранее неизвестного множества таблиц
Как сделать выборку из заранее неизвестного множества таблиц, притом что формирование динамически SQL не подходит по причине большой длины?
-
- Сообщения: 41
- Зарегистрирован: 27 окт 2004, 11:06
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Никак. Я не знаю серверов, которые могут объединять более 256 таблиц в запросе и не знаю, зачем это нужно. Даже если представить себе, что такое возможно, я думаю план построения этого запроса будет строится очень долгоtss писал(а):А с помощью ХП никак нельзя решить?
В IB\FB есть архитектурное ограничение на 255 контекстов, используемых в одном запросе - неважно, простой это SELECT, или вызов SP.
Контекст - это ссылка на таблицу (persistent или derived), агрегат
Если я спрошу иначе: можно ли написать процедуру которая бы выбрала по одной записи из 365 таблиц и вернула результат в виде набора данных?hvlad писал(а):Никак. Я не знаю серверов, которые могут объединять более 256 таблиц в запросе и не знаю, зачем это нужно. Даже если представить себе, что такое возможно, я думаю план построения этого запроса будет строится очень долгоtss писал(а):А с помощью ХП никак нельзя решить?
В IB\FB есть архитектурное ограничение на 255 контекстов, используемых в одном запросе - неважно, простой это SELECT, или вызов SP.
Контекст - это ссылка на таблицу (persistent или derived), агрегат
А может всё таки имеет пересмотреть структуру БД?tss писал(а):Если я спрошу иначе: можно ли написать процедуру которая бы выбрала по одной записи из 365 таблиц и вернула результат в виде набора данных?
Что-то, я не могу себе представить как так можно было организовать атк БД чтоб нужно было делать такой Select?
Может тебе Union попробоватьtss писал(а):структура БД определена не мной и менять я ее не могу. белее того, ее не нужно менять, не смотря ни на что она правильная. если бы каждый день нужно было сохранять порядка 100тыс. записей как бы кто поступил? то что на каждый день заводится новая таблица, для таких условий - это нормально.
Глупости (и\или тяжкое наследие времен dbf).tss писал(а):если бы каждый день нужно было сохранять порядка 100тыс. записей как бы кто поступил? то что на каждый день заводится новая таблица, для таких условий - это нормально.
Единственное оправдание - лимит на р-р таблицы, но вы не его имели в виду, когда строили такую стр-ру.
За год-то может и многовато будет, но на каждый день по таблице... Напомнило баянчик:
Если взрослого мыша
взять и, бережно держа,
напихать в него иголок
Вы получите ежа.
Если этого ежа,
нос заткнув, чтоб не дышал,
Где поглубже, бросить в речку
Вы получите ерша.
Если этого ерша,
головой в тисках зажав,
посильней тянуть за хвост то
Вы получите ужа.
Если этого ужа,
приготовив два ножа...
Впрочем, он наверно сдохнет,
Hо идея хороша!
Если взрослого мыша
взять и, бережно держа,
напихать в него иголок
Вы получите ежа.
Если этого ежа,
нос заткнув, чтоб не дышал,
Где поглубже, бросить в речку
Вы получите ерша.
Если этого ерша,
головой в тисках зажав,
посильней тянуть за хвост то
Вы получите ужа.
Если этого ужа,
приготовив два ножа...
Впрочем, он наверно сдохнет,
Hо идея хороша!
-
- Сообщения: 31
- Зарегистрирован: 27 окт 2004, 11:56
Согласен с предыдущими ораторами.
Но поскольку с точки зрения теории музыки и законов гармонии хуже уже дальше некуда, а Буха (не путать с Бахом) все устраивает то выкручиваться, собирая сначала за квартал, для чего пишется ХП Quarter(Quarter_No), а потом её уже дергать 4 раза из итожащей ХП.
IMHO на 92 таблицы контекстов хватит?
Но поскольку с точки зрения теории музыки и законов гармонии хуже уже дальше некуда, а Буха (не путать с Бахом) все устраивает то выкручиваться, собирая сначала за квартал, для чего пишется ХП Quarter(Quarter_No), а потом её уже дергать 4 раза из итожащей ХП.
IMHO на 92 таблицы контекстов хватит?
-
- Сообщения: 44
- Зарегистрирован: 26 окт 2004, 14:30
Ну вот у меня в небольшой базульке около 3 млн в одной таблице и чо?tss писал(а):структура БД определена не мной и менять я ее не могу. белее того, ее не нужно менять, не смотря ни на что она правильная. если бы каждый день нужно было сохранять порядка 100тыс. записей как бы кто поступил? то что на каждый день заводится новая таблица, для таких условий - это нормально.