This article is neither new nor my own, but I've shown it to a few people lately and despite their having worked with SSIS for months, none of them had seen it.
http://www.microsoft.com/technet/prodtechnol/sql/2005/ssisperf.mspx
This is a white paper that describes how the SSIS run time engine and data flow engine work, and how to take advantage of that knowledge to build better performing SSIS packages. It has excellent coverage of execution trees and memory buffers, and how they are used "under the hoods" in your data flow.
If you haven't read it before, please check it out today and tell a friend. It's required reading for anyone building SSIS packages in the real world.
Thoughts, musings, rants and ravings about the Microsoft Business Intelligence platform and development technologies.
Thursday, November 1, 2007
Wednesday, October 31, 2007
Another Profound Quote
I'm participating in a day-long online meeting via phone, and someone just came out with this gem:
It works on so many levels. It's wrong on so many levels. I love it.
"No one should watch sausage or software being made."
It works on so many levels. It's wrong on so many levels. I love it.
PacMan is Loose on CodePlex!
PacMan - The SQL Server Integration Services Package Manager is a utility designed to permit batch operations on arbitrary sets of SSIS packages. Users can select a single package, a Visual Studio project or solution or a file system folder tree and then validate or update all selected packages in one operation.

And you can find it here: http://www.codeplex.com/pacman
PacMan is a utility that I developed primarily for my own use, and secondarily for use by members of my development team. Although I had always intended to share the PacMan utility with the SSIS community eventually, I kept pushing it back further and further since it wasn't "ready."
But my speaking schedule this month has convinced me that either it's never going to be ready, or else it's already ready. Maybe both. At various presentations this month in Stockholm, Sweden and here at home in Central New York I demonstrated PacMan to illustrate some of the things you can accomplish by using the .NET object model included with SSIS, and the response was an overwhelming "I want that!" from the seminar participants. I explained how this was a personal dev utility that wasn't really ready for prime time, and the interest didn't wane at all with that warning.
So here we are. I've done minimal cleanup, and the code isn't perfect (and there are very few comments, which is something that I would never allow to happen on a "real" project) but I could not find anything similar online, and I thought the best thing to do would be to share the code today instead of waiting to polish it before sharing it.
This is the first CodePlex project (or open source project in general) that I have started, so I honestly do not know how I am going to handle other project participants. I'll the first public alpha release is already available for download so everyone should be able to download the code to use (and tweak) on their own, but I don't currently know what I'll do when people want to contribute directly to the source code. I guess we'll find out when people ask.
And you can find it here: http://www.codeplex.com/pacman
PacMan is a utility that I developed primarily for my own use, and secondarily for use by members of my development team. Although I had always intended to share the PacMan utility with the SSIS community eventually, I kept pushing it back further and further since it wasn't "ready."
But my speaking schedule this month has convinced me that either it's never going to be ready, or else it's already ready. Maybe both. At various presentations this month in Stockholm, Sweden and here at home in Central New York I demonstrated PacMan to illustrate some of the things you can accomplish by using the .NET object model included with SSIS, and the response was an overwhelming "I want that!" from the seminar participants. I explained how this was a personal dev utility that wasn't really ready for prime time, and the interest didn't wane at all with that warning.
So here we are. I've done minimal cleanup, and the code isn't perfect (and there are very few comments, which is something that I would never allow to happen on a "real" project) but I could not find anything similar online, and I thought the best thing to do would be to share the code today instead of waiting to polish it before sharing it.
This is the first CodePlex project (or open source project in general) that I have started, so I honestly do not know how I am going to handle other project participants. I'll the first public alpha release is already available for download so everyone should be able to download the code to use (and tweak) on their own, but I don't currently know what I'll do when people want to contribute directly to the source code. I guess we'll find out when people ask.
Multi-Monitor Goodness
Do you use multiple monitors?
Do they have different resolutions?
Have you ever wanted to display different wallpaper images on each monitor, or to have the same image displayed appropriately (without cropping or stretching and the like) on both monitors?
Well, welcome to DisplayFusion (http://www.binaryfortress.com/displayfusion/)!
DisplayFusion is a free software utility that lets you quickly and easily manage multiple monitors. It does more than just give you control over the desktop wallpaper (although this is all I'm using it for today) - there's also a nice list of features related to managing window position across monitors with global hotkey support.
And did I mention it's free?
So if you answered yes to any of the questions above, you should download DisplayFusion and give it a try.
Do they have different resolutions?
Have you ever wanted to display different wallpaper images on each monitor, or to have the same image displayed appropriately (without cropping or stretching and the like) on both monitors?
Well, welcome to DisplayFusion (http://www.binaryfortress.com/displayfusion/)!
DisplayFusion is a free software utility that lets you quickly and easily manage multiple monitors. It does more than just give you control over the desktop wallpaper (although this is all I'm using it for today) - there's also a nice list of features related to managing window position across monitors with global hotkey support.
And did I mention it's free?
So if you answered yes to any of the questions above, you should download DisplayFusion and give it a try.
SSIS Myths - Call for Entries
I mentioned this to Greg Low during our SQL Down Under chat this morning, so I should probably mention it here in writing as well. I'm planning to start a series of "SSIS Myths" entries on this blog. What this will entail (based on what I see today, in any event) will be presenting a misconception about SSIS, and then digging into the details behind it and presenting the truth (or truths) behind the myth.
So although I have a few of these already in mind, I'd like to put out an open call for entries. If you have a myth in mind, if you've seen or heard statements about SSIS that you don't know if they're true, please let me know. Post a comment or send me an email[1] and I'll add it to my queue. Hopefully I'll have the first myth debunked by next week and will keep a steady stream of them coming your way in the weeks that follow, but in order to keep them coming I will need your help.
So let your voice be heard!
[1] Matthew MCT at Gmail dot calm - you can figure out what to do with it.
So although I have a few of these already in mind, I'd like to put out an open call for entries. If you have a myth in mind, if you've seen or heard statements about SSIS that you don't know if they're true, please let me know. Post a comment or send me an email[1] and I'll add it to my queue. Hopefully I'll have the first myth debunked by next week and will keep a steady stream of them coming your way in the weeks that follow, but in order to keep them coming I will need your help.
So let your voice be heard!
[1] Matthew MCT at Gmail dot calm - you can figure out what to do with it.
The Cake is a Lie
I don't have much time for computer games these days, but I've been playing Valve Software's game Portal over the last few weeks. I finished it last night, and have had a big smile on my face ever since. If you own an XBox 360 Windows PC with a decent video card you should definitely check it out.
Really.
There will be cake.
Really.
There will be cake.
Another Thought on Competition
I posted some thoughts on competition a few months back, and some recent conversations have made me visit this topic again. One was a recurring conversation that I've had with my six year old son. He's very competitive (I wonder where he gets that trait, eh?) but hates to lose. I've been trying to explain to him for years that losing (and by extension, competing against someone better than yourself) is the only way to get better, and that getting better is the only way to win. It's taken a while, but the lesson is starting to stick.
But it doesn't stick everywhere.
I had a conversation a few weeks back with my friend and colleague Ted Malone. We were talking about team dynamics, and Ted came up with this great quote:
Wow, that's profound. I don't know if Ted gets credit for this quote (I think he said it was not his own, but my memory is poor for that type of thing) but he certainly gets my thanks for sharing it with me. In so many walks of life - and software development and architecture is certainly one of them - the people who shine the brightest[1] are the ones who try to surround themselves with the best and the brightest they can find. Any candle, no matter how dim, will look bright in a dark room; you never know how bright your light shines until you take it out in the sunlight.
So what's the moral of the story?
Good question. I always have trouble with that whole "wrapping up and making a point" thing. But if there is a moral, it is that we should always attempt to raise the bar against which we are being judged, and against which we are judging ourselves. Think of it as a process of continuous improvement for the individual. What better investment could we make?
[1] Please note that I'm not trying to say that I fall into this category! Although I like to think that I'm always learning, any time I start to think of myself as an "expert" in any given topic I meet someone whose knowledge puts mine to shame. So I try to hang out with them. :-)
But it doesn't stick everywhere.
I had a conversation a few weeks back with my friend and colleague Ted Malone. We were talking about team dynamics, and Ted came up with this great quote:
Tier one people always try to surround themselves with tier one people.
Tier two people always try to surround themselves with tier three people.
Wow, that's profound. I don't know if Ted gets credit for this quote (I think he said it was not his own, but my memory is poor for that type of thing) but he certainly gets my thanks for sharing it with me. In so many walks of life - and software development and architecture is certainly one of them - the people who shine the brightest[1] are the ones who try to surround themselves with the best and the brightest they can find. Any candle, no matter how dim, will look bright in a dark room; you never know how bright your light shines until you take it out in the sunlight.
So what's the moral of the story?
Good question. I always have trouble with that whole "wrapping up and making a point" thing. But if there is a moral, it is that we should always attempt to raise the bar against which we are being judged, and against which we are judging ourselves. Think of it as a process of continuous improvement for the individual. What better investment could we make?
[1] Please note that I'm not trying to say that I fall into this category! Although I like to think that I'm always learning, any time I start to think of myself as an "expert" in any given topic I meet someone whose knowledge puts mine to shame. So I try to hang out with them. :-)
Subscribe to:
Posts (Atom)