我有几个由行业解决方案生成的XML文件,这些新数据将使用XML直接或使用Invantive SQL中的UploadXmlTopics表与确切的在线驱动程序一起上传到精确的联机中。
然而,确切的在线XML提供了一个大约的限制。每次上传10 MB,即使这样,加载时间也会很长,因为系统负载很重。
当加载时间超过10分钟时,部分事务已被应用,部分失败。在超时的情况下,将不返回消息,该消息将声明需要加载的内容。
我不能更改XML文件,因为它们是由行业解决方案自动生成的。
可靠地将XML文件上传到精确的联机中的最佳方法是什么?
发布于 2017-03-24 11:40:57
当然,最好对XML文件进行更改,但是有不同的选择。请注意,首先,准确的在线表现不同的一天和周末。上传大量数据的最佳时间是周日13:00至23:00之间,根据经验。
手动上传时,可以手动将XML文件拆分为几个XML文件。总是在路径/eExact/主题的主主题上出现分裂。
在通过UploadXmlTopics表上载时,可以使用两种方法:
精确在线的XML大小计算
计算方法是在旧版本中唯一可用的方法。它的工作如下:
select ceil(log(xmlsize / 10000, 16)) + 1
from ( select sum(length(xml)) xmlsize from xmlaccounts@inmemorystorage )local define xmlaccountsparts "${outcome:0,0}"UploadXmlTopics中的新XML,如下所示:
选择filenamepostfix,xml from (选择filenamepostfix,listagg( xml,'') xml from (选择substr(md5(xml),1,${xmlaccountsparts})UploadXMLTopics将此有效负载插入精确的联机中。它的有效作用是首先使用以16为基的对数函数来确定您需要的文件大约有多少。然后使用MD5为每个要上传的XML主题关联一些随机分布的十六进制(16个基)值。取一些MD5值的左边字符等于对数函数结果,以获得大约这个数量的文件,每个文件的有效负载大小大致相同。然后重建XML。
用于精确在线的自动XML大小
较新的版本有一个自动片段选项,可以为您完成繁重的任务。使用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看起来就像:

https://stackoverflow.com/questions/42998412
复制相似问题