Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Fastest way to convert lots of WIDE XML records to rowsets

4155020Mar 7 2020 — edited Mar 7 2020
Hi all.

I've got a requirement to load large amounts of XML data (with several hundred attributes) and ultimately convert it to table rowsets in Oracle. I'm looking at high performance options to do this and, frankly, don't care if the XML parsing/conversion happens inside or outside of the database as long as the throughput is extremely fast.

The current (horrible) mechanism is to load each XML record via SQL*Plus into an XMLType and then use a giant view with a bunch of EXTRACTVAL functions for each attribute... needless to say, the performance is quite dismal.

Options I'm considering (so far) but don't know which would ultimately be faster:

  1. Using an external utility to convert the XML to a delimited file (introduces another processing hop, etc.)
  2. Since I have access to it, using Informatica PowerCenter to convert the data (hopefully in a single inline pass) and then insert into Oracle from there (I'm not sure how good Informatica is at parsing XML though and am worried about the round trips)
  3. Trying DBMS_XSLProcessor in a manner similar to: https://oracle-base.com/articles/9i/parse-xml-documents-9i (again, not sure how fast this would ultimately be)
  4. Running away screaming and becoming a Shepard...


Does anyone have any suggestions on what might be the fastest approach here or have any other suggestions on something else that would be highly performant?)


Thank you!


Comments

Post Details

Added on Mar 7 2020
2 comments
804 views