This week I’m attending SQLPass, and Monday was the first Pre-Con day. I had the pleasure of sitting in “A Day of SSIS in the Enterprise” presented by Andy Leonard (blog|twitter), Tim Mitchell (blog|twitter) and Matt Mason (blog|twitter).
Having spent a significant time in SSIS already and even had thanked a few people, including Andy, a couple years ago when I was learning how to load data warehouses, I was really looking forward to this session.
Agenda:
- Frameworks
- Using Metadata
- Centralized Logging
- Monitoring & Analytics
- Logging in SQL Server “Denali”
- Configurations
- Expressions
- Deployment
- Data Flow Internals
- Measuring Performance
- Data Flow Best Practices
- Scripting
- Design Patterns
First was the de facto disclaimer – This is a level 300 session and it’s difficult to stay at 300 through everything – Configurations, deployment, expressions, etc. They’re covering many areas some of which we might be more expert at than others, but they were looking at being comprehensive.
Andy took the stage first and presented his work on SSIS Frameworks that he’s been honing and presenting for awhile. It’s some great stuff and if you’ve never looked at it, do yourself a favor and go there now, I’ll wait. While he was presenting he said the best line, which I ended up tweeting – “You can’t avoid SSIS Pain, only pick when you feel it.” Matt then talked about some of the upcoming features in Denali and plugged his session later in the week where he’ll be making some “announcements”.
Next up, Tim took the stage and talked about the configurations, expression and deployment at which point Matt chimed in with some of the new deployment options in Denali and since we were running early, he went on to talk about Data Flow Internals before breaking for lunch. After lunch Matt finished discussing the date flow task and then Tim did scripting.
The day ended with Matt presenting Design Patterns and listed out design patterns he “could” talk about:
- Using the DB Engine
- Lookups
- Parallel Processing
- Avoiding Transactions
- Surrogate Key Generation
- Partitioning
- CDC
- Null Value Substitution
- Balanced Data Distribution
- Using Multiple Transforms
- Late Arriving Facts
- Work Pile Pattern – Scale Out
- Slowly Changing Dimensions
- Change Detection
- XML Patterns
Course we only had time to look at 5 of them (great presentations leave you wanting more, right?).
Overall all three presenters were excellent – they were both knoweldgable passionate about their material, the slide decks were very professional, demo’s were also well prepared and they handled questions while staying on schedule very well. They were even monitoring twitter to get questions during the session as well as honoring requests to just keep going and not worry about the time. As with any session this long they were right about there being some things that I already knew and some things I didn’t. However even the things I knew, it was good to have a refresher on the why and even get the re-assurance that I do something right once in awhile. ![]()
Now onto some stuff I learned:
- Got pretty deep into how the Data Flow worked, talking about the Buffers, Execution Trees and Backpressure.
- Discussed when to use synchronous, asynchronous and blocking transformations
- Discussed SSIS strategy for performance – Operations Volume Application Location (OVAL)
- All LOB columns are paged to disk, no exceptions, but you can change the location
- Currency/money data types are more efficient than doubles
- Don’t use the SQL Destination (I’ve never used this but had seen the 30% faster claims)
- There is an actual good use case to use the SCD Wizard.

- Cascading lookups
- How to design for scale out scenarios – this is really cool and can even utilize Service Broker, I’m really pumped to try this one out.
- When not to use SSIS to move data
- Perf Counter – Buffers Swap to Disk should always be 0, otherwise you’re using too much (or don’t have enough) memory
- Why SQL 2005 expressions run time values trump design time and why SQL 2008 is the reverse
- Don’t use SSIS Transactions (i.e., transaction property within the packages)
Thanks to Andy, Tim and Matt for a great session. They obviously spent a lot of time preparying, in fact they were even tweeting Sunday about practicing. Andy later said they were making tweaks during their practice session and even decided to drop talking about source control in favor of additional Design Patterns. Very good content, thanks to the three presenters!
Finished the day at a networking event at Lowell’s. Looking forward to Tuesday’s “Advanced T-SQL for SQL Server 2008 and Denali” by Itzik Ben-Gan (blog)
