Конечно, лучше всего изменить XML-файлы, но есть и другие альтернативы. Прежде всего, обратите внимание, что производительность Exact Online меняется в зависимости от дня и выходных. Лучшее время для загрузки больших объемов данных — воскресенье с 13:00 до 23:00, в зависимости от опыта.
При загрузке вручную вы можете вручную разделить XML-файлы на несколько XML-файлов. Всегда разделяйте основную тему по пути /eExact/TOPIC.
При загрузке через таблицу UploadXmlTopics
можно использовать два подхода:
- Рассчитано
- Автоматизированный
Расчетный размер XML для Exact Online
Расчетный подход является единственным доступным в более старых версиях. Это работает следующим образом:
- В таблице в памяти или в таблице на основе файла поместите запись для темы XML, которую вы хотите загрузить. Обычно я называю их «xml» в качестве имени столбца.
Затем определите, сколько фрагментов вам нужно, например, используя:
select ceil(log(xmlsize / 10000, 16)) + 1
from ( select sum(length(xml)) xmlsize from xmlaccounts@inmemorystorage )
Замените 10000 максимальным размером фрагмента. Выбирайте меньший в периоды большой нагрузки и 1000000 на выходные.
Запомните результат, используя, например:
local define xmlaccountsparts "${outcome:0,0}"
Затем создайте новый XML для вставки в UploadXmlTopics
следующим образом:
select filenamepostfix, xml from ( select filenamepostfix, listagg(xml, '') xml from ( select substr(md5(xml), 1, ${xmlaccountsparts}) filenamepostfix , xml from xmlaccounts@inmemorystorage ) group by filenamepostfix )
И вставьте эту полезную нагрузку в Exact Online, используя UploadXMLTopics
.
Что он эффективно делает, так это сначала определяет приблизительное количество файлов, которые вам нужны, используя логарифмическую функцию с 16 в качестве основания. Затем используйте MD5, чтобы связать несколько случайно распределенных шестнадцатеричных (16 оснований) значений для каждой загружаемой темы XML. Возьмите количество левых символов значений MD5, равное результату логарифмической функции, чтобы получить примерно такое количество файлов, каждый из которых имеет примерно одинаковый размер полезной нагрузки. А затем реконструируйте XML.
Автоматический размер XML для Exact Online
В более новых версиях есть опция автоматического фрагментирования, которая делает всю тяжелую работу за вас. Используйте SQL, например:
insert into UploadXMLTopics@eol
--
-- Upload seed data into Exact Online.
--
( topic
, payload
, division_code
, orig_system_reference
, fragment_payload_flag
, fragment_max_size_characters
)
select topic
, filecontents
, division_code
, filename
, true
, 10000 /* This one is in characters. You can also specify in number. */
from ...
Загруженные фрагменты можно запросить, используя:
select *
--
-- Check results and reload.
--
from UploadXMLTopicFragments@eol
И выглядит примерно так:
person
Guido Leenders
schedule
24.03.2017