もちろん、XMLファイルを変更するのが最善ですが、さまざまな選択肢があります。まず、Exact Onlineのパフォーマンスは、日中と週末に異なることに注意してください。大量のデータをアップロードするのに最適な時間は、経験に基づいて、13:00〜23:00の間の日曜日です。
手動でアップロードする場合、XMLファイルを手作業で複数のXMLファイルに分割できます。常にメイントピックのパス/ eExact/TOPICに分割されます。
UploadXmlTopics
テーブルをアップロードする際、次の2つのアプローチを使用することができます正確なオンライン
のために計算されたアプローチは一つだけである
計算XMLのサイズは、古いバージョンで利用可能です。
メモリテーブルまたはファイルベースのテーブルでは、アップロードするXMLトピックごとにレコードを配置します。私は通常、列名として 'xml'という名前を付けます。 次に使用して、インスタンスのために、あなたが必要とするどのように多くの断片を決定:
select ceil(log(xmlsize/10000, 16)) + 1
from (select sum(length(xml)) xmlsize from [email protected])
最大フラグメントサイズで10000を交換してください。負荷の重い時は小さいものを選択し、週末の場合は1000000を選択してください。
は、例えば、使用結果を記憶:
local define xmlaccountsparts "${outcome:0,0}"
そして次のようにUploadXmlTopics
に挿入する新しいXMLを構築:
選択filenamepostfixを、XML LISTAGG、filenamepostfixを選択し(から( xml、 '')xml from(select substr(md5(xml)、1、$ {xmlaccountsparts})filenamepostfix 、xml from xmlaccounts @ inmemor グループfilenamepostfix によって )
ystorage )とUploadXMLTopics
を使用して正確なオンラインにこのペイロードを挿入します。
効果的なことは、最初に、16を基数とする対数関数を使用して、必要なファイルの数を決定することです。次に、MD5を使用して、アップロードするXMLトピックごとにランダムに分布した16進数(16進数)の値を関連付けます。対数関数の結果に等しいMD5値の左側の文字の数を取って、それぞれがほぼ同じペイロードサイズを持つこの数のファイルを取得します。 XMLを再構築します。正確なオンライン
新しいリリースのための
自動XMLのサイズはあなたのために重い物を持ち上げるを行う自動フラグメントオプションを持っています。ロードされた断片を使用して照会することができ
insert into [email protected]
--
-- 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 [email protected]
をとのようになります。 ![Fragments XML uploaded to Exact Online](https://i.stack.imgur.com/iPtiv.png)
のようなSQLを使用します