:: Не фоксом единым
pivot Oracle
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Есть ли альтернатива функции
pivot в Oracle
Написал около 20 отчетов с разворотом по горизонтали,
используя эту штуку.
Но увы, она не динамическая
В in в ней вопреки примерам документации
нельзя подсунуть вычисляемый список.
Пишу фиксированный, а он со временем может измениться
Особой проблемы написать процедуру с execute immidiate
нет, но дело в том, что как для вычисления самого списка
полей разворота по диагонали, так и для самих вычислений приходится
запускать почти один и тот же огромный по размеру скрипт.
Производительность падает раза в два.
Второй вопрос связан с первым.
Многие отчеты таковы, что первой строкой там должна идти итоговая
сумма по всем таким горизонтальным колонкам.
Добавляется еще проблема динамического rollup
по неизвестному заранее списку колонок.
Снова падает производительность.
Есть решении все это сделать по частям уже на клиенте,
но начальство хочет все максимально на Оракл.
Кстати, до кучи. Есть ли аналог pivot c##
для dataset
Ratings: 0 negative/0 positive
Re: pivot Oracle
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
www.oracle.com
В XML выводить, указывая спец-клаузу ANY, или даже подзапрос (если список "колонок" шахматки тоже надо ограничивать). Ну или динамика - у Кайта наверняка есть решение для этого - фишка то только в 11 версии появилась, а шахматки и до того были нужны

По rollup - как-то не приходилось средствами СУБД отчёты делать, а в промежуточном слое как правило не проблема свои группировки и подитоги делать... В экселе "сводные таблицы" всё это на раз делают - и саму шахматку из "нормальной плоской таблицы", и подитоги разнообразные.

Для шарпа - есть какие-то библиотеки для pivot datatable... Ничего экстра-сложного в самом алгоритме раскидывания нет, можно в фоксе подсмотреть даже Конечно, если источник миллиарднозаписный (после подсуммирования по полям разворачивания) то будут проблемы, но я бы постарался сдать в дурку чела которому нужна шахматка на сотню тысяч колонок и строк


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: pivot Oracle
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
В том-то и дело,
что на Фоксе у меня уже лет 20 класс
класс cross есть
Пробовал переписать на Оракл, работает,
но не быстро, как в Фоксе
На есть МSDN C# пример кода в linq
, но фактически он статический, как
у меня сейчас написано и работает.
Вопрос не в этом чтобы написать, а в том ,
чтобы работало быстро,
а вид имело красивый
Решается совершенно конкретная задача
неких отраслевых отчетов,
ексел страниц 150
На фоксе эта моя задача отработала на ура
лет 6 и сейчас втихаря используют.
Что нам продали -любая страница работает
минут по 30-40.
Я переписал это и работает по полугодичному интервалу данных
минуты 3. Но это вписанные заранее статьи по горизонтали,
как в примерах Оракл Pivot
Как только пишу динамику с execute immidiate ,
приходится идти по практически похожим курсорам 2 раза
( приходится анализировать не пустые суммы провод,
не имеющие отношения к полям по горизонтали)
И все, скорость падает раза в 3 и более,
то есть уже покупной вариант не так и страшен.
Ексел-это тоже клиент, а хотят Оракл по максимум,
и уж точно не Фокс. Политика такая.
Ratings: 0 negative/0 positive
Re: pivot Oracle
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Тут смотрел (внизу "рукопись")? И далее по ссылке на Кайта...
habr.com


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: pivot Oracle
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Спасибо, Игорь, посмотрел.
Немного мудрено, буду разбираться,
посмотрю скорость
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 6 (Гостей: 6)

© 2000-2024 Fox Club 
Яндекс.Метрика