Welcome to EMC Consulting Blogs Sign in | Join | Help

SSIS Junkie

Once upon a time this blog was a hive of activity. Now however its pretty lifeless as you can probably tell so if are pining for more of the same you can find me over at http://sqlblog.com/blogs/jamie_thomson. I look forward to seeing you there!

SSIS: Whitepaper on Performance Tuning Techniques

I have recently come across a SQL Server Iintegration Services performance tuning paper here: http://www.microsoft.com/technet/prodtechnol/sql/2005/ssisperf.mspx that I highly recommend reading for SSIS practitioners. It covers important issues such as:

  • Parallelism
  • Buffer tuning
  • Execution trees
  • Isolating bottlenecks

Here are the pertinent points that I took away from reading it:

  1. I like the categorisation of transformations into row, partially blocking & blocking. I shall try and use that terminology more in this blog.
  2. A data-flow should be considered as a series of execution trees (of which there may only be one) as defined by the points in the data-flow where new buffers are created.
  3. Generally speaking, reducing the number of execution trees will cause data-flow performance to improve. (Update: Ashwani Nanda made a very good comment to this point in the comments section below).
  4. A data-flow buffer cannot exceed 100MB
  5. SSIS uses the estimated row size, DefaultMaxBufferRows and DefaultMaxBufferSize to derive the number of rows in a buffer at execution time.
  6. A MULTICAST component does NOT cause a new execution tree to be created
  7. Identify bottlenecks by investigating each part of your data-flow in isolation. Identify Source speed and Destination speed from which you can derive transformation speed.
  8. Use the Buffers Spooled performance counter to see if you are running out of physial memory resources.

That's a really useful paper. My thanks to the guys that wrote it!

-Jamie

 

Published 09 April 2006 08:45 by jamie.thomson

Comments

 

Marco Russo said:

Grazie a questo post di Jamie Thomson ho scoperto un white paper di Microsoft sull'ottimizzazione delle...
April 10, 2006 11:04
 

Professional Association for SQL Server (PASS) SIG said:

April 11, 2006 17:25
 

Darren Gosbell's Random Procrastination said:

April 12, 2006 15:10
 

Darren Gosbell's Random Procrastination said:

April 17, 2006 00:36
 

Ashwani Nanda said:

Hi Jamie,

Yeah, I've seen this document and is really a good work. However, your observation of point 3 "Generally speaking, reducing the number of execution trees will cause data-flow performance to improve." is quite interesting and requires some further investigation. As I understand, if you need to use all the available CPUs on your multiprocessor machine, you must configure your Data Flow to utilise multiple threads which means having more execution trees. Yes, this definitely goes with the volume of data and the processing requirements. I think some baseline experiments are required in this direction to establish the vague boundary when to prefer to break execution tree into multiple trees (i.e. utilise multi-threading).

Regards,
April 18, 2006 09:55
New Comments to this post are disabled

This Blog

Syndication

Powered by Community Server (Personal Edition), by Telligent Systems