Performance issues

B

Ben

We have a form template that has become almost unusable due to speed and
performance issues. A new, blank form does not have issues, but as you add
data the response time in adding elements gets extremely slow. We have an XML
file that is only roughly 200kb, and depending on the machine the time to add
a new element can be anywhere from 20 seconds to 1 minute.

I have read other posts, and the MSDN article on InfoPath 2007 performance.
We use no outside data connections, no event handlers or other code, no drop
down lists, and no complex Xpath. I would say the schema is somewhat complex-
it is fairly "deep" (nested) at times, but otherwise don't know where to
start to troubleshoot. Any ideas?
 
C

Clay Fox

If you have a lot of nested data then trying to churn through it in xml is
going to perform poorly.

It sounds like you need this in a database and then allow InfoPath to
dynamically query it and work with just the relevant data.
 
B

Ben

Thanks Clay. There really isn't nested data that is in XML that we're
querying- we're not accessing any outside data. The schema itself is somewhat
nested, though I really don't know how it compare to what others are doing.
But having data in a database isn't what we're looking for. The schema is
similar to the following (not very readable, sorry):

<books>
<book>
<toc>
<page>
<page_items>
<item>
</page_items>
</page>
</toc>
<sections>
<section>
<page>
<page_items>
<page_item>
</page_item>
</page_items>
</page>
<chapters>
<chapter>
<topics>
<topic>
<page>
<page_items>
<page_item>
</page_item>
</page_items>
</page>
</topic>
</topcs>
</chapter>
</chapters>
</section>
</sections>
</book>
</books>

Does that clarify the issue?
 
G

Gavin McKay

Hi Ben,

I can't comment on the exact performance changes between Infopath 2003 and
2007, but in 2003 we had to get around "large data slowing things down"
issues by writing custom code that would process the Xml and modify the form
by hand. A truly painful solution, but necessary at the time. The issue was
with how Infopath handled Xml - I forget the details but in summary Infopath
loads the entire xml into an Xml Document object model (DOM) so it can
validate the schema and populate the form, rather than processing it
element-by-element. This causes Infopath to suffer when you get a large xml
set.

Unfortunately that explains the issue, not solves the problem :) As Clay
said, having the data stored in a database could help but you mentioned you
cannot use this for your form. Is it possible to split your data up somehow
into more than one form? Or remove some data and have it hard-coded (such as
for lookup-tables in drop-down boxes, etc.) ? I am a bit surprised that you
are hitting performance problems - even at 200Kb that isn't "gigantic" as far
as Xml goes. Do you have any embedded images or objects that are pushing the
size out? Your XML looks very library/book-oriented, so I'm wondering if it
includes scanned images of title covers of pages that could be throwing it
out. Might also like to open up Performance Monitor on your PC and see if it
is hammering the CPU.

HTH

Gavin.
 
B

Ben

Thanks for the input Gavin. I would definitely like to avoid the custom code!

I didn't mean to say we can't use an external database, but since we're not
looking up data within XML or elsewhere, I'm not sure how we would use the
database to help at all.

I'm working with a Microsoft engineer, I'll let you know what I find out.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top