Disabling indexes may have a drawback though if you have any workflow set to
fire on MERGE that checks for existing data in the current form. If this
search is against an indexed field, you would be better off leaving the
index as is, if that bit of workflow is necessary during import to create
some relationships or whatever..

If you are using one of the BMC utilities to do this mass import, I'm pretty
certain there is at least one filter that performs such a search..

Joe D'Souza
  -----Original Message-----
  From: Action Request System discussion list(ARSList)
[mailto:[EMAIL PROTECTED] Behalf Of Rick Cook
  Sent: Wednesday, November 07, 2007 10:28 AM
  To: [email protected]
  Subject: Re: Degrading performance on large updates and inserts


  **
  William, if you haven't already, investigate the pre-caching of Entry-IDs.
The sweet spot seems to be around 100 at a time, and it really does help.
Also, large data imports are sped up by temporarily disabling the indexes on
the import form.  Make sure that your data doesn't violate any unique ones,
or you will have a nasty surprise when you add them back in.

  Rick
----------------------------------------------------------------------------
--
  From: Action Request System discussion list(ARSList)
[mailto:[EMAIL PROTECTED] On Behalf Of William Rentfrow
  Sent: Wednesday, November 07, 2007 7:06 AM
  To: [email protected]
  Subject: Degrading performance on large updates and inserts


  **
  We are pushing about 800,000 records into the CTM:People form.  This is an
initial data load - updates will be smaller.

  To do this we've imported the records into a staging form to format the
data properly.  Then an escalation kicks off and marks every record's status
to "Processed" from "New".  A filter fires on the change of status and
pushes data to the CTM:People form.  This filter does a match on our staging
form EID = CTM:People.Corporate ID which is an indexed field in the
CTM:People form.

  With the base product I had exceedingly bad import times - about 1.5
seconds per record (and this is on a pretty decent Sun box with a separate
Oracle server also on a Sun box).  So I added a filter on CTM:People that
said if $USER$="AR_ESCALATOR" then Goto 1000.  Essentially I skipped all the
OOB validation (which I'd already done in the staging form out of
necessity).  This got the record import speed up to about 15 records/second
(which is STILL far too slow IMHO).

  As the 800,000 records imported the speed decreased.  At the end we
averages 6.92 records/second pushed to CTM:People and it took ~31.5 hours.

  Also, we initially left one piece of data out of the staging form - so we
added it back in and ran an update push to CTM:People.  This was faster but
had the same symptom - I started out getting 15/second updates and now
(nearly 24 hours later) I'm averaging 9.5 updates/second.

  My questions....

  1.) Why would performance degrade for an update?  I can see it for the
insert because the tables/indexes/paging/etc are growing - but on an update
that should be fairly static.
  2.) Any ideas why this SO slow?  These are big enterprise boxes.   I have
appropriate ports/queues configured, etc.  The arserverd process is not
chewing up all the clock time so obviously it's not taxed.  And barely
anyone is on this box at all.

  Also....

  3.) If this is still running and I turn on server side SQL logging why
don't I see any of the transactions?  Especially when server filter logging
shows them still processing.....

  William Rentfrow, Principal Consultant
  [EMAIL PROTECTED]
  C 701-306-6157
  O 952-432-0227
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.503 / Virus Database: 269.15.24/1115 - Release Date: 11/7/2007
9:21 AM

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Platinum Sponsor: www.rmsportal.com ARSlist: "Where the Answers Are"

Reply via email to