CftClub.ru
Клуб специалистов ЦФТ-Банк

OOXML или XLS (выписка для налоговой)
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеСр Фев 24, 2016 15:05   OOXML или XLS (выписка для налоговой) Ответить с цитатой
Полезность: Нет оценки
Столкнулись со следующей проблемой. На основе старой ЦФТ-операции (которая выводила в EXCEL)сделали выписку для налоговой, т.к. логика работы несколько не устраивала. Все бы хорошо, но при количестве больше 7-8 тысяч записей начинались жуткие тормоза с выоводом в Эксель. В одном из соседних разделов посоветовали пользоваться OOXML . Попробовал дистрибутив - новая выписка для ФНС. 5480 записей формировала 1 час 10 минут. Тот же объем, но в эксель - 15 секунд, но если чуть больше 7-8 тысяч может висеть несколько часов. Кто как решал проблему выписок с большим количеством записей, по какому пути идти? Спасибо.
Pauls
Участник со стажем


Вступление в Клуб: 16.11.2011
СообщениеЧт Фев 25, 2016 21:21    Ответить с цитатой
Полезность: Нет оценки
Было нечто похожее именно при работе с библиотекой EXCEL. Помогло использован вместо excel.write =>excel.put+ excel.print_array. Как у вас организован вывод? Используются ли операции форматирования ( border, pastespecial и т.п.)
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеПт Фев 26, 2016 03:36    Ответить с цитатой
Полезность: Нет оценки
Да я уже отвечал, что просто почаще сделать excel.print_array.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПт Фев 26, 2016 09:58    Ответить с цитатой
Полезность: Нет оценки
Pauls пишет:
Было нечто похожее именно при работе с библиотекой EXCEL. Помогло использован вместо excel.write =>excel.put+ excel.print_array. Как у вас организован вывод? Используются ли операции форматирования ( border, pastespecial и т.п.)


Да именно excel.put
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПт Фев 26, 2016 09:59    Ответить с цитатой
Полезность: Нет оценки
Alkov пишет:
Да я уже отвечал, что просто почаще сделать excel.print_array.

делал через каждые 500 записей - не помогло.
teac1212
Участник


Вступление в Клуб: 29.02.2016
СообщениеПн Фев 29, 2016 08:52    Ответить с цитатой
Полезность: 1
День добрый!
Проверите версию оптимизатора PL/SQL должно быть 2 для пакетов из класса OOXML. Значения ячеек в OOXML PLSQL таблица, это значить память если ее мало будет тормозить. Хотя 15 сек и 4200 это перебор.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПн Фев 29, 2016 09:59    Ответить с цитатой
Полезность: Нет оценки
teac1212 пишет:
День добрый!
Проверите версию оптимизатора PL/SQL должно быть 2 для пакетов из класса OOXML. Значения ячеек в OOXML PLSQL таблица, это значить память если ее мало будет тормозить. Хотя 15 сек и 4200 это перебор.


Не совсем понял что проверить и где? Спасибо.
teac1212
Участник


Вступление в Клуб: 29.02.2016
СообщениеПн Фев 29, 2016 13:18    Ответить с цитатой
Полезность: Нет оценки
Проверить вот так:
SELECT (case
when a.PLSQL_OPTIMIZE_LEVEL < 2 then 'плохо'
else 'отлично'
end)

,a.* FROM USER_PLSQL_OBJECT_SETTINGS a
WHERE TYPE = 'PACKAGE BODY' and NAME like 'Z%OOXML%';
Изменить вот так
alter package XXXX compile body PLSQL_OPTIMIZE_LEVEL=2;

Вообщем поясню зачем это нужно это нужно для ускорения обхода PL\SQL табличек там сейчас построено все на этом в Excel. Для Word мы делаем точечные инъекции на XQuery.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПн Фев 29, 2016 18:03    Ответить с цитатой
Полезность: Нет оценки
у нас вообще в user_plsql_object_settings нет записи с OOXML
teac1212
Участник


Вступление в Клуб: 29.02.2016
СообщениеВт Мар 01, 2016 06:55    Ответить с цитатой
Полезность: 1
Версия Oracle какая? Ну и смотреть надо под пользователем владельцем.
Ну или за место user смотреть из представления ALL
SELECT (case
when a.PLSQL_OPTIMIZE_LEVEL < 2 then 'плохо'
else 'отлично'
end)

,a.* FROM ALL_PLSQL_OBJECT_SETTINGS a
WHERE TYPE = 'PACKAGE BODY' and NAME like 'Z%OOXML%';
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеВт Мар 01, 2016 08:49    Ответить с цитатой
Полезность: Нет оценки
teac1212 пишет:
Версия Oracle какая? Ну и смотреть надо под пользователем владельцем.
Ну или за место user смотреть из представления ALL
SELECT (case
when a.PLSQL_OPTIMIZE_LEVEL < 2 then 'плохо'
else 'отлично'
end)

,a.* FROM ALL_PLSQL_OBJECT_SETTINGS a
WHERE TYPE = 'PACKAGE BODY' and NAME like 'Z%OOXML%';

Да, не посмотрел , что там контекст. Спасибо. А почему сразу не ставят равно 2?
teac1212
Участник


Вступление в Клуб: 29.02.2016
СообщениеВт Мар 01, 2016 09:58    Ответить с цитатой
Полезность: 1
Ну это связано с переходом на 10 (там были проблемы) вообще сейчас только 5 пактов должны быть 0:
'PLP$PARSER','PLIB','PLP2PLSQL','PLP2JAVA','DICT_MGR' ну для 2MCA еще
'PLP2JAVA'.
Ну и параметр нужно смотреть в ORA.ini.
Просто все так сказать ... не заморачиваются.
Это же признак поведения компилятора инстанса.
teac1212
Участник


Вступление в Клуб: 29.02.2016
СообщениеВт Мар 01, 2016 10:29    Ответить с цитатой
Полезность: 1
Ну и отпишитесь о результате если не трудно мне с полей не часто новости приходят. А обыдно писать в корзину.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеВт Мар 01, 2016 10:48    Ответить с цитатой
Полезность: Нет оценки
teac1212 пишет:
Ну это связано с переходом на 10 (там были проблемы) вообще сейчас только 5 пактов должны быть 0:
'PLP$PARSER','PLIB','PLP2PLSQL','PLP2JAVA','DICT_MGR' ну для 2MCA еще
'PLP2JAVA'.
Ну и параметр нужно смотреть в ORA.ini.
Просто все так сказать ... не заморачиваются.
Это же признак поведения компилятора инстанса.

Круто, на медленной тестовой базе через ООХМЛ теперь формирует 12 000 записей за 6 секунд. А через эту настройку для пакетов можно еще что то ускорить?)
teac1212
Участник


Вступление в Клуб: 29.02.2016
СообщениеВт Мар 01, 2016 12:49    Ответить с цитатой
Полезность: Нет оценки
Ну ... я уже писал обходы массивов автоматические инлайн подстановки кода поиск по ключу. Вообще Оракле не очень любит открывать свои секреты. Это не выправляет кривизну рук и постановок -).
Ну я рад что вам это помогло.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru