THE SQL Server Blog Spot on the Web

Welcome to SQLblog.com - The SQL Server blog spot on the web Sign in | Join | Help
in Search

Andy Leonard

SSIS and ETL
Thoughts about Database and Software Development, and the tools of the trade.

  • Speaking in Reston VA Monday 22 Jun!

    I just learned I am presenting to NoVaSQL (Northern Virginia SQL Server User Group) Monday! Woo hoo!

    I'm looking forward to it - I always have a good time at NoVaSQL. I am honored and excited to present Database Development and Application Lifecycle Management - based on my articles An Example of Test-Driven Development and An Example of Test-Driven Development, Part 2 at SQLServerCentral.com).

    The meeting starts at 7:00 PM Monday, 22 Jun 2009 and is held at 1900 Gallows Rd Vienna, VA 22182.

    If you're in the area and read this blog, stop by and say Hi!

    :{> Andy


  • PASS Summit 2009 - A Tale of Careers and User Groups

    I am deeply honored to present a session in the Professional Development track at the PASS Summit 2009. "Why Andy?" Because in this session I get to inspire folks!

    Little known fact: I was once a part-time instructor at ECPI. In fact, I was teaching a course there when I frist met Christy. The absolute coolest part of being a teacher, trainer, mentor, blogger, manager, developer community leader, or MVP is the opportunity to inspire people.

    I think part of the inspiration comes from (what others have told me is) my accent. Now I don't think I have one, but others do.

    If you've never heard me, it's a southern accent.

    Because of stereotypes in the US, some people think a southern accent reflects poorly on one's intelligence. "What's inspiring about that, Andy?" I'm glad you asked. I believe people hear me speak and think "If that dumb-sounding hick can learn SQL Server, I know I can!"

    I do believe anyone can learn SQL Server technology. And I am blessed to work in a field, surrounded by a community, that I love.

    I can't wait to share with you how I see our field and community co-mingling.

    Here's my abstract for the session:

    A Tale of Careers and User Groups

    There is value for your career in the User Group community - for novices and experts alike - especially in this economy. Andy Leonard discusses the value of networking through your local user group. Andy also discusses integrating your user group into the local business community using a proven sponsorship model.

    I first witnessed a User-Group-Business-Community ecosystem in Jacksonville. Brian Knight and a lot of others in the area had a hand in it, but it was Brian who introduced it to me.

    When I returned to Virginia in 2005, I found a business plan that claimed some businesses had a legitimate interest in the User Group community. I thought about it for a long time, and decided it made sense, so we adopted it in Richmond. That plan was written by Darrell Norton, ASP.Net MVP. Darrell's also an MBA. If you know any MVPs that are also MBAs, they can be handy!

    In the session I plan to share the business plan, how we implemented it, and how it has changed our developer community.

    I hope to see you there!

    :{>


  • PASS Summit 2009 - Applied SSIS Design Patterns

    A couple weeks ago, I learned my proposal for a spotlight session entitled "Applied SSIS Design Patterns" had been accpeted by the PASS Summit 2009 speaker selection committe. Cool! I've never done a PASS Summit spotlight session.

    The abstract for the presentation follows:

    Applied SSIS Design Patterns

    "Design Patterns" is more than a trendy buzz phrase; design patterns are a way of breaking down complex development projects into manageable tasks. They lend themselves to several development methodologies and apply to SSIS development. Chances are you're using your own design patterns now! In this spotlight session, Andy Leonard defines design patterns applicable to SSIS, and then demonstrates their use to develop SSIS solutions. The session is designed for those with little or no exposure to design patterns or application development methodologies; but with good experience in SSIS. The goal is to introduce the science, terminology, and philosophy of design patterns to those wishing to learn more; then demonstrate how to leverage the principles just described by applying them to every day SSIS development. Demonstrations will also include migration through the application lifecycle, deployment, and maintenance.

    There are lots of other cool spotlight sessions. Check them out here, and I hope to see you at the PASS Summit 2009!

    :{> Andy

     


  • PASS Summit 2009 - From Zero to SSIS

    I learned a couple weeks back my proposal for a pre- or post-conference seminar entitled "From Zero to SSIS" had been selected as an alternate at the PASS Summit 2009. I was a little disappointed,  but then I looked at the incredible speakers and topics selected for pre- and post-conference seminars here

    These seminars offer a fantastic opportunity for anyone interested in drilling deeper into database and business intelligence topics.

    Here's the abstract I submitted:

    From Zero to SSIS

    In this extended session, Andy Leonard covers the SSIS development spectrum and lifecycle from introduction, through design and development, into performance tuning, and finally maintenance. Topics of note include:

     - Introductory topics:
        Connections,
        Control Flow,
        Data Flow,
        Package Execution properties and start-up flow.
     - Design considerations:
        Are you loading a data warehouse or simply creating a copy of production for reporting or warm standby purposes?
        Scripting in the Control Flow.
        Scripting in the Data Flow.
     - Advanced design:
        Powerful SSIS design patterns.
     - Beyond Advanced Design
     - Undocumented design: (Attend and see!)
     - Package properties
     - SSIS Expression Language
     - The Secret Life of EventHandlers
     - Logging:
        Built-in logging 
     - Package Configurations
         Built-in package configurations
     - Let's Take This Outside
        Custom logging.
        Custom configurations.
     - Execution Environments.
     - The Art and Science of Deployment.
         To MSDB or not to MSDB?
     - Zen and Performance Tuning.
        Putting the flow into Data Flows.

    I'm not sure of all the ways an Alternate session gets promoted to an Accepted - I know it can happen if a selected session cannot be delivered for some reason. But I'll tell you what: if a bunch of you comment on this message indicating you're interested in this one-day seminar, I will forward a link to the SqlPass people. There's still no guarantees, but I figure it's worth a shot.

    :{> Andy


  • The Best Thing I Learned At PASS

    I attended my first PASS Summit in 2004. I also attended a pre-conference (pre-con) led by Kalen Delaney. It was awesome! Kalen's pre-con focused on performance tuning, and I learned a lot about both SQL Server 2000 and SQL Server 2005.

    The most important thing I learned was: I was not alone! There's a whole lot of us out there, lurking in corner and basement cubicles, automating process monitors, reviewing job logs.

    I learned most database professionals are "accidental DBAs" - most of us didn't ever plan to enter the field. We decided to do database work sometime after starting in IT, or (like me) were standing closest to the server when a database position became available.

    In short, I discovered I was part of a community.

    And so it has remained the past five years - I am part of a community.

    That's the cool part of PASS for me. At the Summit, I get to see folks I haven't seen for a year. I learn as much at the events and networking with new and old friends as I do during the sessions. And that's saying something - the sessions are awesome!

    I hope to see you at the PASS Summit 2009

    :{> Andy


  • 9 Jun 2009: Speaking at the SQL Server Innovators Guild in Greenville, SC!

    I am honored and excited to present Database Development and Application Lifecycle Management - based on my article An Example of Test-Driven Development at SQLServerCentral.com) to the SQL Server Innovators Guild (what a cool name for a SQL Server user group!) in Greenville SC! I'll be there the evening of 9 Jun 2009 (next Tuesday).

    If you're in the area and read this blog, stop by and say Hi!

    :{> Andy


  • Speaking in Raleigh 19 May!

    I am honored to present SSIS Tips and Tricks to the Triangle SQL Server User Group Tuesday, 19 May 2009!

    I'll do a brief introduction to SSIS for the uninitiated, then quickly dive into demos that highlight the power of SSIS. I hope to preserve time at the end of the talk to do on-the-fly demos. I did something similar at Richmond Code Camp 2008.2 and had a blast!

    If you're near Raleigh Tuesday and read this blog, be sure to stop by and introduce yourself! I should be there at 6:30. The address is:

    1201 Edwards Mill Rd., Suite 201
    Raleigh, North Carolina  27607

    There's a map and phone numbers at the website.

    Hope to see you there!

    :{>

     


  • Speaking in Richmond - Tonight!

    I am honored to present Database Development to the Richmond SQL Server Users Group this evening!

    I'm looking forward to the presentation and our upcoming Richmond Code Camp 2009.1 this Saturday!

    :{> Andy


  • Richmond Code Camp 2009.1 is 25 Apr 2009!

    Can you believe it's time for another Richmond Code Camp? Wow - time flies when you're having fun!

    Richmond Code Camp returns to the J. Sargeant Reynolds Community College campus on Parham Road in Richmond, VA. Since this is our second RCC at JSR's excellent facilities, we've figured out how best to utilize the rooms and layout.

    We have an outstanding lineup of presenters and presentations. The schedule hasn't been published, but I can tell you we have first-time presenters from the Richmond Developer Community, several MVPs, and (drum roll please) Donald Farmer!

    If you're going to be in the Richmond area 25 Apr, please register today!

    :{> Andy


  • Who Thinks Like Database Professionals?

    Introduction

    I was talking to my team this morning and we were wondering about some design decisions. One of the things that came out of the discussion was: Database professionals think differently.

    Differently? How?

    A little story: Before I was a database person I did web development. That's a little misleading because I wrote very little that made it onto the big web. Most of my work ran on enterprise intranets.

    Back then, I started using Access first (and I admit it). After I crashed Access one weekend, I learned about SQL Server 6.5 and started working with it. After a year or so I started playing with SQL Server 7.0. About six months later I considered myself a DBA.

    Were You a DBA?

    No.

    But You Considered Yourself a DBA?

    Yes.

    When Did You Learn You Weren't a DBA?

    I learned I was not a DBA when I started working on my first Very Large Database (VLDB) project. I started doing database work and realized how little I actually knew. The gaps in my knowledge were readily identifiable, but that was nothing compared to my thinking. I didn't think like a database person. 

    I'm not going to mislead you: Sometimes, the ability to think differently than a database person adds value. But right then, it was a major liability.

    Thinking about parallelism and thinking in sets is different. It's way different from the way I thought about web development. I don't think I'm alone in any of my experiences. I think lots of people have trouble thinking in sets, about parallelism; and quite a few developers think they're DBAs.

    It's important to note that there are some developers who are DBAs. I believe they represent a subset of all the developers who think they are. Maybe I'm just biased because of my experience, I'm not sure.

    One Last Thing

    The most important thing I learned working with that VLDB: I was not a DBA when I started, and I really wasn't a DBA when I finished. I knew a lot more about SQL Server database administration, but that doesn't make a DBA - in my opinion. I learned I'm a database developer, which is a different animal from an application developer and from a DBA.

    I can hear you thinking: "What makes a DBA, Andy?" I'm glad you asked. I don't think there's a formula, really. I know some really good DBAs (a couple of them are also really good developers), and they share some traits. One thing they all have in common is they're detail-oriented.

    Conclusion

    What do you think? What are the differences between the thinking of database professionals and other technology professionals?

    :{> Andy


  • Things I Know Now

    Introduction

    I was tagged by Joe Webb for this question circulating through the inter-tubes.

    Joe and I shared a cab to the airport after the PASS Summit 2008. If you've never had the opportunity to share a cab with Joe, I highly recommend it. He's one of those people. You know the type - they talk to you for a few minutes and impact the rest of your life in a positive way. A way that still has you thinking months later. Thanks Joe.

    My List

    Well, I have to admit I saw some good stuff when following the links to others who've answered this question. I'm going to repeat some of theirs here, but only because I've learned (usually the hard way) the same thing.

    1. Learn constantly. There are fields out there where you can get trained and then do that work most of your life without having to learn much more. Database work is not one of those fields. Plan to spend some of your time - your own time - keeping up with what's new and on the horizon.

    I'm not asking you to fall instantly in love with every new feature you encounter. That would be absurd. But equally absurd is dismissing every new feature - especially the stuff you don't understand or cannot think of a good use for at the moment. Features are added for a reason. Most of them are good reasons, at least to someone. It might not be for you, but will it kill you to learn something new? If I don't understand it, I can't use it - ever. If I do understand it, it becomes another tool in the toolbox.

    2. Dream big. I was struggling with my new career as a DBA. I felt I was in over my head and, any minute, I was going to be discovered and fired. I am not making this up. About the time I attended the PASS Summit 2004 I got a few successes under my belt - enough to feel more secure in my job but not enough to convince me I knew anything about very large databases in SQL Server.

    It was The Year of the Storms in Florida. Orlando looked like it had been bombed. It was ugly, but the conference went on. I stood in line at the hands-on labs to meet Ken Henderson. I was devouring The Guru's Guide to SQL Server Internals and Architecture along with Kalen Delaney's SQL Server 2000 Performance Tuning Technical Reference. I credit both authors with saving my career, incidentally.

    I heard Ken dispensing no-nonsense advice to people. I think some thought to "teach him a thing or two," and he respectfully but firmly resisted this with the gentleman in line in front of me (poor guy). I was next, and was probably visibly shaking in my shoes. I explained to Ken that I was pretty new to large SQL Server databases and was a web developer that had been thrust into a new position at work. I told him about my approach - relying on my engineering training and testing heavily - and explained the symptoms I was seeing. Ken made a few excellent suggestions, which I wrote down and which, unsurprisingly, put me right on top of the issues I was describing. I thanked him profusely and started away. He said "Hey, you're approaching this like I would."

    I felt like the kid on the old Coke commercial - the one where Mean Joe Greene throws him his jersey. I know it sounds cheesy, but I entered that room as a guy learning databases and left it a database professional. The difference for me was the confidence that I was approaching this problem like Ken Henderson would.

    3. Live transparently. I blogged about this recently but it bears repeating. Treat others like you want to be treated, in public and private. Work hard. Admit your mistakes and do everything you can to correct them and mitigate the damage - all as soon as possible. Help as many people as you possibly can. Don't lie. When the honest answer is "I don't know," lead with that - you can tell folks your best guess after stating you don't know. It's ok, no one knows it all.

    4. "If it was easy..." My Granny used to say "If it was easy, anyone could do it." (This was the same lady who told me "Son, God gave you a [backside] so you'd have somewhere to land when you fall.") I've experienced failure and I've watched others experience it. It ain't pretty and it's no fun to live through or deal with. Bad things happen when people fail. That's a fact. But you're not judged by how many times you fall down, in my opinion and estimation; you're judged by whether you get up or just stay there.

    Get up.

    If nothing else, you now know at least one thing that doesn't work. Use that. Leverage it. Build a way that will work from it's ashen rubble. Don't just sit there on your ash.

    5. Take good advice. A good skill to cultivate is the ability to recognize good advice when you hear it. Note: You may not want to hear good advice. I can guarantee you it's unpleasant when you've messed up.

    I'm blessed to be surrounded by people who care about me enough to tell me "Andy, that was a mistake." When they do, I usually don't want to hear that. But I recognize the motive and hear the heart, and know it's good advice.

    Conclusion

    That's all I can think of for now. There are no magic formulas or guarantees in life. These are the things I'd share with my younger self if I could write a letter to me and send it back in time.

    :{> Andy


  • Happy Pi Day 2009!

    Happy Pi Day Everyone!

    :{> Andy


  • xp_delete_file

    Introduction

    I built a SQL Server 2008 Maintenance Plan and included a Maintenance Cleanup Task. For those who don't work with this stuff every day, Maintenance Plans are actually SSIS packages. The short version of a long story is: I couldn't execute the Maintenance Plan on the server. I won't go into that (not now, at least); but I noticed a View T-SQL button on the task:

    When I clicked the button, I was presented with a textbox containing the following T-SQL:

    EXECUTE master.dbo.xp_delete_file 0,N'E:\Database_Backups',N'bak','2009-03-07T16:45:17',1

    I Don't Know Either

    I said to myself: "Self, this could be a very useful extended stored procedure." So I popped open Books Online to look it up and... no topic found. Not a problem.

    I popped over to MSDN and started scrolling through the online documentation and... no topic found. Not a problem.

    I searched MSDN and... topics found. Yay! I clicked on a link to Connect about the topic missing from the documentation and... the link was broken. </HowIronic>

    What I Do Know

    I actually needed to clean up older backups, but I thought I could use this to also clean out old Team Foundation Server WSS (Windows SharePoint Server) logs that were filling up one of my drives. It turns out I could.

    I edited and tested the following code:

    declare @DeleteDate nvarchar(50)
    declare @DeleteDateTime datetime
    set
    @DeleteDateTime = DateAdd(hh, -24, GetDate())
    set @DeleteDate = (Select Replace(Convert(nvarchar, @DeleteDateTime, 111), '/', '-') + 'T' + Convert(nvarchar, @DeleteDateTime, 108))
    EXECUTE master.dbo.xp_delete_file 0,N'E:\WSSLogs',N'log',@DeleteDate,1

    It works. What's more, it runs at the same time as my nightly backup jobs (as a step in the same SQL Agent Job) and leaves my server fresh and clean for another day of pleasant computing.

    Conclusion

    I still do not know what the numeric arguments accomplish in the xp_delete_file extended stored procedure. But I was able to get some use from it nonetheless.

    :{> Andy


  • Speaking at Roanoke Code Camp Tomorrow!

    I am honored to again be presenting at Roanoke Code Camp tomorrow, 7 Mar 2009!

    I'll be talking about Incremental Loads, a presentation very close to my first blog post at SqlBlog.com: SSIS Design Pattern: Incremental Loads.

    I'm also honored to be co-presenting with Jessica Moss, MVP. We will be reprising our PASS Summit 2008 presentation on SSIS Scripting. We demonstrate scripting techniques using a class (and later a custom SSIS task) that interfaces with the Twitter API.

    If you're going to be in the Roanoke, VA neighborhood tomorrow, stop by and say Hi!

    :{> Andy


  • On Developer Communities: Twitter

    Introduction

    Do you use Twitter?

    I do - a lot. I like it. It fits my style of living transparently and online - and living transparently online.

    Style

    My style is not your style. You have your own style (I know, I've observed many of you). I think your style works just fine for you. Mine certainly works well for me.

    Have I complained to you about your style? If I did, I probably said something like "I have a problem with the way you did this or that." Only the first four words of that sentence mean anything. Really. Trust me. I know me and this is the truth.

    Welcome to the Buffet!

    I've been influenced in my life and career. It's happening even now - daily almost. I'm working for a superb manager. Working for him is like going to Manager School every day. He's so good at it, he makes management fun and (gasp) appealing.

    He accomplished this by enjoying his job. I know this sounds crazy, but that's how it happened.

    It's like life is a giant buffet and he piled a bunch of management on his plate, took a bite, and said "This tastes great!" It made me want to try some.

    The buffet model seems to influence me more than anything else. I see something someone else is enjoying and decide to check it out. Sometimes I like it, sometimes I don't.

    If I don't like it, I condemn all buffets everywhere! I'm kidding.

    If I don't like it, I condemn this dish as useless and bad for everyone! I'm kidding again.

    If I don't like it, I say something (crazy) like "I don't like this" or "I couldn't get this to work for me, at least not right now."

    Does Twitter Work For Everyone?

    No. I respect a bunch of people who just don't like Twitter. So far as I can tell, it's not their cup of tea. It doesn't fit their style. We covered style already.

    That doesn't make them bad people. Or Wrong. Or even wrong about Twitter.

    Does Twitter Work For Me?

    You bet your boots!

    I follow technology people (of course). I follow Star Trek: The Next Generation actors. I follow people who agree with my politics. I follow people who disagree with my politics. I follow people who share my faith. I follow my bank. I follow Nascar people and someone named BassMaster. I follow companies that tweet specials. I follow myself (I have a couple Twitter identities).

    I follow thinkers and gamers and bloggers and authors and geeks. I follow my kids and my wife.

    I find Twitter is a neat middle-ground between blogging and instant messaging. I describe Twitter as a "quasi-connected" message bus. That has implications and actually started me thinking about this presentation Jessica Moss and I delivered at the PASS Summit 2008.

    One Example

    A few weeks ago I renewed my search for an obscure BBC Radio recording. I have tried to find this recording at least a dozen times in the past, after hearing bits and pieces of it on Richmond public radio a decade ago. Within minutes, the collective that follows me - my tribe - provided three responses with links to three different sites containing information about purchasing the CDs.

    So?

    Exactly. Either that's something that I tried on the buffet that appeals to you, or it isn't. If you're looking for something obscure, does that mean Twiitter is for you?

    It depends.

    It's really about more than that. It's about networking. You can't join Twitter tomorrow and get three answers to your obscure question. First you have to build a network. (I find it ironic that some of the people I admire for their blogs about the career value of networking do not like Twitter. But that's their style...)

    Twitter Doesn't Work For Everybody

    And it never will. Truth be told, nothing works perfectly for everyone. There's stuff out there I simply do not understand and have made it thus far in my life and career without having to learn. Does that make that knowledge useless to all? Umm no. Does that qualify me to serve as a judge of the technology? I'd argue just the opposite is true... that's kind of like getting marriage advice from your single friends.

    If you want to try Twitter, I suggest taking a Test-Driven approach.

    How To Get Hundreds Of Followers And Get Nearly-Instant Answers About Obscure BBC Recordings

    First, you need hundreds of followers. (This is a paraphrase of one of Steve Martin's routines: How to be a millionaire and not pay taxes. The first line was "First you need a million dollars.")

    A good "Twitter test" involves starting with the right test harness or framework. I recommend TweetDeck. TweetDeck is complex. It takes some getting used to. But part of the complexity is you're also getting used to a different way of communicating. So you will need to give it time. I recommend 90 days. You can filter and group people you follow. Take the time to learn to use the tool with the technology. So that's step 1.

    Step 2 is to follow people you find interesting. Brent Ozar and Jason Massie are the SQL Server / database / Twitter guys I keep up with. They point to interesting Twitter / SQL Server links and even maintain them. Here's some great advice. Here's some more cool people to follow.

    Step 3 is to participate. Join the conversation. Say something! (Well, type something). No one's going to follow you just becasue you're there. And trust me, you have something to add to the conversation.

    I only ask one favor: If you don't like what someone is saying, telling them to stop saying it is bad form. Especially on Twitter. That's the social equivalent of yelling "Shut up!" at them while at a crowded party or convention. That's rude. Simply un-follow them or put them in a small TweetDeck group that you occasionally check.

    Does Twitter Work For You?

    :{> Andy


More Posts Next page »

This Blog

Syndication

Powered by Community Server (Commercial Edition), by Telligent Systems
  Privacy Statement