September 2009
Mon Tue Wed Thu Fri Sat Sun
« Aug   Oct »
 123456
78910111213
14151617181920
21222324252627
282930  

Month September 2009

This is what I believe… about PASS

So, I had a video made up when the nominations process started. Then I emailed the unencoded 15MB version to PASS instead of the wonderful, tiny, encoded version. So, that being said, here’s the wonderful, tiny, encoded version. Enjoy:

[media id=1]

PASS Board of Directors Elections

Well, it’s election season at PASS. The fun part is that I’m running this year. That’s right, yours truly is running for the PASS Board of Directors.

So, here’s how it works: elections go from October 12th through October 20th. During that time you can vote. Up until that time… you can’t.

I have ideas about PASS. A lot of ideas. If you want to know about my ideas, check out the amazing video I made (I’ll be posting it later today) or feel free to get in touch. I do actually want to hear your thoughts, hear what you have to say, and be challenged to do a great job as a member of this great community that we’re all a part of.

Upcoming Speaking Engagements

Just a quick reminder that I’ll be speaking at the Richmond Code Camp this upcoming weekend. I’ll be giving two talks… here they are:

Indexes and Other Free Performance Boosts

Time & Location

October 4, 2009 at Richmond Code Camp.

Abstract

The database is often viewed as a major performance bottleneck. There are a number of quick, easy, painless techniques that can increase the performance of an application not just by a small amount, but by orders of magnitude. These techniques includes simple indexing techniques, T-SQL techniques, and general database application design patterns that give great gains in performance. In this session, you will learn how to look at a database to identify these problem areas and how to resolve common issues that you will encounter.

From Tables to Objects: Making Your Database Work With You

Time & Location

October 4, 2009 at Richmond Code Camp.

Abstract

A database is far more than a persistent object store for your application; it is capable of data validation en masse, aggregations, and creating different projections of data. By working with your database, rather than against it, it is possible to leverage all of the capabilities of a relational database to provide rich, high performance interaction with your application through an ORM. This presentation will discuss the finer points of building a full-featured data access layer using an ORM and the features of a relational database.

Goals

  1. Teach attendees about database features that make development easier – including views, sparsely populated tables, and user-defined functions and types.
  2. Empower the audience to solve object relational impedance mismatch using data modeling techniques and database features.
  3. Demonstrate how to integrate the database and object oriented software using a custom designed data access layer.

Links for the Week – 2009.09.25

SQL Server

There’s a three part series (one two three) on migrating databases. I’m sure many people have been through this before. I know I have. About a week before these three posts were published.

Ever wonder when you should use a filtered index and when you should use an indexed view? Yeah, I have too. The distinction hasn’t been all that clear (to me). Andrew Fryer clears that up a bit in this blog post.

Development

I like the idea of continuous integration. I like testing. I like automating everything until I don’t even have to think about it anymore. It can be done even with the database. Jeffrey Palermo and Eric Hexter demonstrated just how to get CI working with your database project using nothing but pure T-SQL.

Stuff & Things

These first two are for some RSS reader goodness. I haven’t gotten around to trying out Fever for my RSS feeds yet. The idea of paying $40 for an RSS reader is a bit steep. But, the idea of having my feeds add value to one another is intriguing. If you’re feeling a bit cheap, there’s always Helvetireader. This is a set of browser scripts and CSS that add a touch of class to your google reader.

The Personal MBA is a set of reading materials meant to teach everything that you would get in an MBA program. While I doubt that it’s the same as getting an MBA, I do like the idea of a reading list that’s designed to help me, a nerd, get better at something I suck at: business.

Soundtrack for a City Augmented reality – through our phones or sunglasses or our retinal implants – is only beginning. It’s new. Soon sight will be augmented by sound. I love this idea.

You Can Virtualize Anything!

That’s right. Here at PASS we’re working on ways to virtualize everything. Not only can we virtualize away your web server and SQL Server, but now we’ve found a way to virtualize your user group!

We’re pleased to announce that PASS has several new Virtual Chapters dedicated to providing you with the finest quality SQL Server content made with the freshest virtual ingredients available on the market today.

So, what is a Virtual Chapter? Well, once upon a time these things were called SIGs. Then someone decided that these were more than just special interest groups (SIG, get it?). Now we have Virtual Chapters. Same great taste, now with 1/3 the calories!

Spread the world, tell people you know about the Virtual Chapters . This is a fantastic program and a great way for you to get access to SQL Server learning when you can’t make it to a user group or just feel like getting your learn on during the day.

SQL Server Performance Tuning Webcast

Looking for a quick overview of SQL Server performance tuning? Well, look no further! Way back at devLink, David Giard was kind enough to interview me about my thoughts on troubleshooting SQL Server performance. Check it out.

A little history on this, David talked to me many months ago at the Stir Trek convention, but the audio was particularly bad so you couldn’t hear me ramble about ORMs and how stored procedures are the greatest thing since butter. Trust me, you’re better off for it.

Anyway… a huge thanks to David Giard for giving me the chance to talk a little about troubleshooting SQL Server performance.

Check Your Indexes

We all know that we’re supposed to check for missing indexes. But what about unused or underused indexes. How often do you check for those? My guess is that a lot of people don’t check for them. I know I didn’t… until Friday.

It’s database migration season here in central Ohio, and in order to move databases to new servers, you need to physically copy files. To make that operation fast you want to copy as little data as possible. Here’s the thing: we often only think about the amount of space that an index is going to take up before we add it to a table, but how often do you think about how much space indexes are taking up after you’ve added the index to the table?

Over the course of 3 minutes, I identified 20 gigabytes of unused indexes on just one database. That’s a staggering amount of space being taken up by indexes with no purpose. In addition to taking up precious storage space, these indexes also required maintenance – defragmentation, statistics updating – and also utilized disk IO whenever the source table was modified.

What about underutilized indexes? I don’t know… yet. I plan on examining the index utilization further to make sure that we’re using the most effective indexing strategies and I will probably be dumping indexes that are only used rarely. This is where things get tricky: when should I drop an index? How little usage is the same as no usage? Can I merge this index with another index? How much space is the unused index taking up?

I’m curious: Do other DBAs have a usage threshold they consider before they drop an index?

Links for the Week 2009.09.20

SQL Server

Distributed Queries – Remote Login Permissions and Execution Plans You can sometimes end up with SQL Server not generating good execution plans for remote queries. I just assumed that this was a problem with remote queries. Turns out that I was wrong and all you really need to do is give some specific permissions to the remote login. You learn something new every day.

John Paul Cook : Script to create all foreign keys Let’s make some foreign keys! How many times have you had to drop and recreate all of your foreign keys? I’ve had to do it, especially for complicated ETL processes where I really don’t feel like following the rules and I’d prefer to just throw data at a schema and validate it later. John Paul Cook has a great way to generate all of your keys as a drop and create. BOOM! DONE!

Development

Microsoft StreamInsight : Updated Sample Package StreamInsight is part of the new complex event processing framework that will be unleashed on the world in SQL Server 2008 R2. This mainly includes internationalization fixes and an updated help file.

Running Rake tasks in E-Text Editor e-text editor is a lot like TextMate, but for Windows. It’s a must if you’re doing any kind of Ruby development and don’t want NetBeans or Eclipse eating 95% of your system memory. I’ve run into problems using it to run my rake tasks in the past. My solution was to keep a terminal window open. Apparently there’s a better way.

Git Resources Git is what traditional source control wants to be when it grows up. I’m still learning and I have a long way to go on being 100% comfortable with git, however here’s a list of resources to help you along your route to using some sweet sweet version control.

Stuff & Things

Retro games are cool. I love retro gaming. In part because I don’t have a 3d accelerated graphics card in my macbook and my options are for retro games or flash games. The best part is that these aren’t abandonware games, these are legit games that have legally been released to the community. Go download some retro games. (The site is kind of slow because lifehacker linked to them, but be patient, it’s so worth it.)

i love typography has a link dump. I heart fonts. I heart link dumps. I super heart font link dumps.

Mistakes can be good. Matt at 37signals talks about the importance of revealing your mistakes and being honest about them and ties it in with an anecdote about Julia Child’s frank approach to her own cooking. I remember an episode of her show from when I was young where she tenderized meat with a 2×4. 20 years later I needed to tenderize meat, but I had no meat tenderizing hammer. But I did remember her advice about covering the meat and using anything available. So I covered the meat in saran wrap and then covered a book in saran wrap and I had a meat tenderizer. I’ve also used a shoe. True story.

Your Own Personal Development Plan

It’s September. I think that means that autumn is upon us. It also means that it’s time for me – and my coworkers – to work on our Professional Development Plans. I’m not going to lie, I love the idea behind doing a PDP (I’m already sick of typing Professional Development Plan). You should probably think of the phrase Personal Development Plan instead of Professional Development Plan whenever you see PDP. Why? Because you don’t work with me, probably.

What Are You On About Now?

A PDP is basically a big list that you agonize about for days on end until you rush through it at the very last minute and turn it in to the owners of your company only to say, 5 minutes later, “Oh, shit! I completely left off the only project where I actually did any work!” Unfortunately, this description does nothing for you because you weren’t sitting in my cubicle during the 45 minutes I frantically slapped my PDP together. (Just kidding, boss, I carefully crafted my PDP over several long days. After hours. On non-billable time.)

No, Seriously, What is a PDP?

The point of a PDP is to help us proactively manage our career. As a consultant I’m not always working directly with people from my company. Not that I can blame my clients, but my career advancement isn’t really their top priority. Even when I am working with my fellow consultants, they’re usually reporting to me and are more concerned about their needs than my long term career goals. This PDP thing serves as a road map – something to revisit and revise throughout the year to help me stay on track. It’s incredibly important to have a good grasp of your goals, especially when you don’t have a lot of contact with the person doing your performance review.

Roadmap. Think of a PDP as a roadmap. A roadmap you’re drawing on as you move forward. You’ve probably also got some sticky notes (those cool ones with arrows) pointing to highlights along the way. I’m hoping that your career is filled with pit stops like the Christmas barn that’s between Columbus and Cleveland along I-71.

How Do I Do This Thing?

I’m going to assume, for the sake of argument, that you have never done one of these before. That’s okay. It really isn’t a difficult process, but you’ll probably want to take about a day for this, certainly a few hours.

What Have You Done?

Basically, the first step is to review what’s happened. If you’ve never done this before, this could take a while. You’ll want to take a look at your career and your major accomplishments since your last review. Make a list. Also make a list of everything you’ve learned over the last year – this could be your successes, your failures, your missed opportunities, anywhere you had the opportunity to learn. The important thing here is to make a big list of everything. If you can think of somewhere that you feel like you should’ve done something but you didn’t, make a note of that too.

I write about what I’m the most proud of first. This gets the juices flowing, so to speak. By writing about something that I’m proud of and passionate about I’m going to fill myself with energy and ideas. I’m going to describe every little thing about what I’ve done. And when I’m done I’m going to want to keep talking about all of the awesome things that I’ve done because I think they’re fascinating. Once I’m full of energy and enthusiasm, I’m going to keep on writing until I don’t have ideas. And that’s what you want.

How Did You Get Here?

Don’t stop with a list of accomplishments! Move on to the next step make a list of your key strengths. This is going to be very important later on. The key is to actually look at your own abilities and be honest about your skills. Are you really an Excel expert or do you just know how to use the auto sum feature? Be brutally honest. It’s okay. Being honest gives you the opportunity to learn more.

This used to be my favorite part of doing these kind of reviews until I realized that I was breaking all of my skills down to minute specialties in order to have more bullet points. Just be honest. Don’t mention every nook and cranny of C# that you know. Just write down “Strong C# development skills” – you aren’t trying to impress anyone with the list of esoteric APIs you’ve memorized.

What Could You Have Done Better?

This is the part where I literally ask myself “What could I have done better over the last year?” It’s a rough question to ask yourself, but the key here is that you probably have answered this question without even realizing it when you made a list of everything you’ve done over the last year. Remember how I said to include your failures, missed opportunities, and anywhere you had the opportunity to learn? Well, you can elaborate on these opportunities here. When you’re making this list, remind yourself that these aren’t your failings, they are really just places that you could have done something better. Everyone drops the ball every now and the. It’s okay. The key is to get back up and learn from what happened.

Once you have a list of places you could have improved, go over the list and think about each item one at a time. How can you get better? Is there a book you can read? A class you can take? Is there someone you can talk to about mentoring you?

What are your goals?

You need to be thinking about your goals. What do you want to do?

We’re not talking about what you want to do for lunch. You need to be thinking about what you want to be doing with your career. Think about the next year, the next three years, and the next five years. Do you want to be running your own department? Starting your own consulting company? Retired?

For some help in setting your goals, take a look at the idea of SMART goals. Basically, you want to make sure your goals are Specific, Measurable, Attainable, Realistic, and Timely. The important thing to keep in mind is that the farther out the goal the less specific it needs to be.

How are you going to get there?

At this point, you have a list of everything you’ve done well, everything you could have done better, and your goals. Now it’s time to set up plans to achieve your goals. Make sure that your plans and your goals are realistic. Share these goals with a mentor, co-worker, or friend to get some input and guidance. It’s important to get some external validation. I know that I have a habit of being too hard on myself and I set up goals that are a bit out of range, so I seek the advice of a few trusted advisors.

I make it a point to review my plan and goals every month. Once every three months or so, I meet and talk with a few people – mentors, friends, and the owners of my company. The whole point of this is to stay on track and make sure I’m working toward my goals. If I’m straying away from my goals, or if I’m accomplishing them faster or slower than normal, it’s good to re-center and get back on track.

What’s Next?

Every year conduct a review. Look at yourself critically, but honestly, and always strive to keep improving and keep your career and your goals aligned.

Links for the Week of 2009.09.12

SQL Server

Optimizing Queries That Access Correlated datetime Columns DATE_CORRELATION_OPTIMIZATION is some good stuff. If you have an InvoiceDate column that happens to be close to the OrderDate column in a related table, and this setting is on, the compiler will generate what could be a much better optimization plan.

Difference between an index and a primary key Denny Cherry does a great job of explaining this one. I frequently misuse primary key and clustered index as the same in conversation (yes, I do have A LOT of conversations about databases, even outside of work). I need to be better about that. This reminds me why.

Development

Vertical Centering in CSS This question comes up every once in a while. I always forget how to do it. Hopefully this will help someone else get their vertical centering sorted out.

The Unspoken Truth About Managing Geeks I’m not a manager but I play one on TV. There some good info in here. Especially if you only play a manager on TV.

Using Accessibility Modifiers on Auto Properties Auto properties rule. Justin Etheredge demonstrates how to keep that level of awesome rolling forward.

Stuff & Things

Simplified Virtual PC Creation with Differencing Disks I don’t know what to say. The idea is so damn simple I don’t know why I didn’t think of it before. Thanks to Jonathan Kehayias for this article. This is going to save me so much time and trouble.

20 Tips for Writing for the Web

Flowing Data | Data Visualization and Statistics It’s a blog that’s devoted to different ways of presenting information. Gotta love that. Flat tabular display of data is good, but there’s often a better way. A much better way.

Make Fried Pie in Five Minutes and Kickstart Your Day Fried. Pie.

Monkey on a motorcycle

Think about the different areas of your life Love the quote.

This site is protected with Urban Giraffe's plugin 'HTML Purified' and Edward Z. Yang's Powered by HTML Purifier. 214 items have been purified.