Paul Randal (blog | twitter) started it all yesterday, with a posting stating the Five Things he would like to see disappear from SQL Server. It's going around the block, and looks like I'll chime in this time. So, here are two of mine and some mentions from others.
UPDATE: I want to add in here REMOVE 'sa' login. Yep. I said it. I'm sure many will agree. Real DBAs don't need or use 'sa' anyway. All it really does is serve as a back door for a bunch of poorly written applications.
Licensing Model
Why do we need so many options for SQL Server? Standard won't give you some really needed things only found in Enterprise or (gasp!) the new Datacenter options, but maybe you need ONE of those things. It's cost-prohibitive for small to medium sized companies who could really use some features. Why not make it all a la carte?
Security Model
Oh, it's robust. Don't get me wrong. Have you ever had to track down a security issue when someone had decided that assigning object level permissions was a good idea? Then, come to find out the members of one group overlapped those of another group? It needs to read more clearly who has permissions to do what. The "Effective Permissions" button on the database properties "permissions" tab is almost the most useless thing in there. Between groups and users and roles and schemas, again, there are too many choices. Of course, DBAs should understand what they are implementing before choosing a security model, but that's another blog post.
The rest have all been said - some more than once, but a few of my favorites:
Default Settings
If you have done more than two SQL Server installs, you know how poorly the default settings are defined. So many violate best practices, why not change them? Maybe it's just a way to separate the Beginner from the Experienced DBA's?
Throwing in with Buck Woody (blog | twitter) - Management Studio
Yes, it's a tool, but we have way too many for the Admin needs surrounding the product. Why do we need SSMS, Configuration Manager, BIDS, Event Viewer, MMC...should I continue? If we have to use a Management Tool, make it all accessible from a single point of entry. Our time is valuable, you know.
Honorable mentions - GUIDs and TIMESTAMP data types
I think almost everyone has been tagged already, so if you want to chime in, consider yourself tagged!
Thanks for tagging me again, Ted Krueger (blog | twitter)
Wednesday, May 12, 2010
Monday, May 10, 2010
Attack of the Killer Maintenance Plan
In tracking down some system resource use issues, it led me back to some maintenance plans that I knew needed re-writing (ideally replacing) but I never expected them to end up the horror movie they revealed. {slurp, thunk}
It's a sunny day. Sure, it's Monday, but you get those now and then. My role at the current company is inherited. They had another DBA previously who did not have prior DBA experience. It shows - maintenance plans everywhere. Really, that's not the end of the world, many companies who do not have a full time DBA use them, smaller shops use them as well and those who don't have other known options implement them too. That's okay, this is part of what my paycheck is for, right? So, while the task has taken a back burner for many months, it's time to fix them up. Especially when it appears to be a culprit in pegging my DEV server on a regular basis. Hey - look! - there's an old abandoned house at the top that hill...let's go see if the door is locked.
Turn the creaky knob - let's go in and see what's up with the plans. Oh, look-y there! Not ONE maintenance plan, but TWO. Well, at least the previous person separated out 'system' database maintenance plans from 'user' db plans. Let's see what is down that dark hallway behind the door...Maintenance plan for 'user' databases. SLAM! hey...who closed the front door? Take a deep breath, it's just wind. Sure. Now, back to this door at the end of the hall. Slowly! You never know what might be in there. Huh. This doesn't seem so scary. Rebuild Indexes, Update Statistics AAACCKKK!!! Where did this Shrink Databases come from! Quick - get the baseball bat. Hit it! Hit it HARDER! ONE MORE TIME! Whew. That was close. As we back out of the room, we catch a glimpse of Check Database Integrity. I think we'll be okay.
One more door to check though. It's a door in the kitchen. Surely this must lead to the basement? Do we *have* to look? Yes? Gulp.
What is that scratching sound? Hey wait - there's a sign on the door. It says "optimize system databases". Huh. I don't want to go in there. You go first.
Oh, my blog? I have to go first? Got it. Sure. Okay. Reaching out with a shaky hand to the handle on the door and - whoa....it swings inward? That's just not right. And the lights are already on. Stepping down one squeaky step at a time, we see Rebuild Index again. Looking a bit worse for wear but I'm sure we're safe. {gurgle} What was that? Whew...just Update Statistics again. {slurp, thunk} There was something in the shadows there. What do you mean "where?" Right. THERE. AAAAAACCCKKKK! Another Shrink Database - No! No! It cannot be! Not here! Quick, behind this door...RUN!
My, but that was close. I've never seen anything so heinous. A few more deep breaths.
Ewwww. What is *that* smell? Etched on the opposite wall of this cellar room, the word "Production" and an arrow pointing to another door can be made out. I don't want to think of what was used to write that. We have to check the Production server now. There just has to be a way out of here. Please don't make me see that basement again. {tap, tap, tap, tap} Stop it now, you're just trying to scare me. {drip, drip, tap, tap, tap} Oh dear.
Two Maintenance Plan doors again. I'm not even going to attempt the "User" plan again. The only way out is through the "System" Plan door. The door is already opened a crack and there is an eerie greenish light emanating from somewhere within. The tapping sounds are getting louder as we approach. Within inches of the door, it swings open with a BANG and out run Rebuild Index and Update Statistics as if they had been sent on a mission. We are knocked over and fall to the cold floor. Trying to regain balance from taking a hit, the light catches our eyes. It's unimaginable. The mass is pulsating, amorphous and...and..
And then, there it is in all it's GUI glory:
We have reached insanity. There is no hope of return. Our meager baseball bat cannot contend with such a monster. Cthulhu has won this day.
Slurp.
Thunk.
It's a sunny day. Sure, it's Monday, but you get those now and then. My role at the current company is inherited. They had another DBA previously who did not have prior DBA experience. It shows - maintenance plans everywhere. Really, that's not the end of the world, many companies who do not have a full time DBA use them, smaller shops use them as well and those who don't have other known options implement them too. That's okay, this is part of what my paycheck is for, right? So, while the task has taken a back burner for many months, it's time to fix them up. Especially when it appears to be a culprit in pegging my DEV server on a regular basis. Hey - look! - there's an old abandoned house at the top that hill...let's go see if the door is locked.
Turn the creaky knob - let's go in and see what's up with the plans. Oh, look-y there! Not ONE maintenance plan, but TWO. Well, at least the previous person separated out 'system' database maintenance plans from 'user' db plans. Let's see what is down that dark hallway behind the door...Maintenance plan for 'user' databases. SLAM! hey...who closed the front door? Take a deep breath, it's just wind. Sure. Now, back to this door at the end of the hall. Slowly! You never know what might be in there. Huh. This doesn't seem so scary. Rebuild Indexes, Update Statistics AAACCKKK!!! Where did this Shrink Databases come from! Quick - get the baseball bat. Hit it! Hit it HARDER! ONE MORE TIME! Whew. That was close. As we back out of the room, we catch a glimpse of Check Database Integrity. I think we'll be okay.
One more door to check though. It's a door in the kitchen. Surely this must lead to the basement? Do we *have* to look? Yes? Gulp.
What is that scratching sound? Hey wait - there's a sign on the door. It says "optimize system databases". Huh. I don't want to go in there. You go first.
Oh, my blog? I have to go first? Got it. Sure. Okay. Reaching out with a shaky hand to the handle on the door and - whoa....it swings inward? That's just not right. And the lights are already on. Stepping down one squeaky step at a time, we see Rebuild Index again. Looking a bit worse for wear but I'm sure we're safe. {gurgle} What was that? Whew...just Update Statistics again. {slurp, thunk} There was something in the shadows there. What do you mean "where?" Right. THERE. AAAAAACCCKKKK! Another Shrink Database - No! No! It cannot be! Not here! Quick, behind this door...RUN!
My, but that was close. I've never seen anything so heinous. A few more deep breaths.
Ewwww. What is *that* smell? Etched on the opposite wall of this cellar room, the word "Production" and an arrow pointing to another door can be made out. I don't want to think of what was used to write that. We have to check the Production server now. There just has to be a way out of here. Please don't make me see that basement again. {tap, tap, tap, tap} Stop it now, you're just trying to scare me. {drip, drip, tap, tap, tap} Oh dear.
Two Maintenance Plan doors again. I'm not even going to attempt the "User" plan again. The only way out is through the "System" Plan door. The door is already opened a crack and there is an eerie greenish light emanating from somewhere within. The tapping sounds are getting louder as we approach. Within inches of the door, it swings open with a BANG and out run Rebuild Index and Update Statistics as if they had been sent on a mission. We are knocked over and fall to the cold floor. Trying to regain balance from taking a hit, the light catches our eyes. It's unimaginable. The mass is pulsating, amorphous and...and..
And then, there it is in all it's GUI glory:
USE [master]
GO
DBCC SHRINKDATABASE(N'master', 10, TRUNCATEONLY)
GO
USE [model]
GO
DBCC SHRINKDATABASE(N'model', 10, TRUNCATEONLY)
GO
USE [msdb]
GO
DBCC SHRINKDATABASE(N'msdb', 10, TRUNCATEONLY)
We have reached insanity. There is no hope of return. Our meager baseball bat cannot contend with such a monster. Cthulhu has won this day.
Slurp.
Thunk.
Wednesday, April 21, 2010
When Does The Fat Lady Sing? or Tips for a Successful SQL Saturday
Since it's baseball season, I'll start off my recap for the Chicago SQL Saturday #31 event with this:
I want to take a different spin on my blog post about the event, as other great recaps can be found by reading Ted Krueger and Jes Borland blog posts. They both already did a great job of capturing the feel of the event, the awesomeness of all the great volunteers and their tireless enthusiasm, plus the amazing sessions by our fabulous cadre of speakers. Since I don't want to just say all the same stuff over again, you get to read how we made it all come together and what we can do better next time. My hope is to help future SQL Saturday organizers create a successful event.
In the few days leading up to the event, there are only so many things you can prep:
Where does all this stuff go?
We had literally THREE cars packed with boxes of stuff for the event, and that did not include anything the Sponsors sent to the hotel. Instead of the litany of what we had, let me say how I think things should go for next time.
1. SQL Saturday t-shirts should be delivered to the venue if possible.
3. Raffle Boxes. Ours could not have looked more cheesy. Black and white sheets with company logos, taped to whatever boxes I could find in the mailroom. UGGGGGLY. Functional, yes...but....embarassing. Next time, I'll hit up the dollar store for colorful sand buckets or something. Anything would be an improvement!
4. Prizes, Prizes, Prizes! We were so fortunate to have probably 40 prizes to give out (est). Have a plan for how and when you want them to be distributed. We did ours all at the end of the day. Prizes of value stayed with me or the Sponsor and the rest (mostly books) were placed out of sight and out of reach.
Most events so far haven't been the size of ours. With the potential of having over 400 people come through the door, we had to have a plan and have it streamlined. As it was unknown who the volunteers for the day would be, I spent some time writing up everything and making sure I had it as foolproof as possible. Here were the highlights:
1. Separate the list into 5 mostly equal sections. I didn't want one volunteer being swampped with 40% of the attendees in their line.
2. Put as much in the event bags as possible. In retrospect, we could have put the blank name badges with lanyards inside of the bag.
3. Event schedules should be the first thing people see when they open their bag. Alternatively, just put out stacks of them near registration.
I want to sincerely thank the Registration crew: Jes Borland (blog | twitter), Eli Weinstock-Herman (blog | twitter), Christina Leo (Twitter), Aaron Nelson(blog | twitter) and his incredible daughter Dorothy , Andrew Karcher (blog | twitter), Bob Pusateri (twitter), Keith Mescha (blog | twitter), Wayne Gant and one more that I feel really stupid for not recalling who you are!
First, have dedicated volunteers ahead of time for things like: making raffle boxes, PROOFREADING, arranging printing and cutting needs, designing shirts, Speaker thank-you gifts, SSUG Resource Table, Speaker announcements, Raffle distributions, Room monitors, Event Bag assembly. Not that any of these things went awry, moreso because it's just nicer to know they are in someone's hands and will get done :)
Second, ask each vendor to provide a packing list of what they send and how they want it distributed.
So, when does the singing start?
Apparently, right after I get all the promised contact information to the Sponsors; all the Speakers get their slide decks loaded; we send the Speakers their evaluations; sort through all the overall Event evaluations; and THEN we send a big Thank You to all the people who actually came through the door. I think that's when the fat lady gets to sing...(no, my karoke doesn't count).
To sum up: We had a great event, we had amazing volunteers (bag stuffers, set up people, room monitors, lunch helpers, clean up crew!) and I just couldn't have asked for anything better. SQL People R.O.C.K.!!!
It ain't over till it's over
And, folks - it still ain't over! I want to take a different spin on my blog post about the event, as other great recaps can be found by reading Ted Krueger and Jes Borland blog posts. They both already did a great job of capturing the feel of the event, the awesomeness of all the great volunteers and their tireless enthusiasm, plus the amazing sessions by our fabulous cadre of speakers. Since I don't want to just say all the same stuff over again, you get to read how we made it all come together and what we can do better next time. My hope is to help future SQL Saturday organizers create a successful event.
In the few days leading up to the event, there are only so many things you can prep:
- Printing lots of stuff:
- Name Badges (I recommend just the logo!)
- Lunch Tickets
- Attendance Check In Rosters
- SQL Saturday Evaulations
- Session Evaluations
- Certificates of Appreciation for Speakers and Sponsors
Where does all this stuff go?
We had literally THREE cars packed with boxes of stuff for the event, and that did not include anything the Sponsors sent to the hotel. Instead of the litany of what we had, let me say how I think things should go for next time.
1. SQL Saturday t-shirts should be delivered to the venue if possible.
2. Unless you have the manpower to stuff event bags ahead of time, all those things should be sent to the venue, too.
- Note: Vendors should clearly mark what SWAG is for the event bags and what is for their table. We spent a good hour or so rifling through the vendors' boxes trying to decide what went in the bags. I think a quick packing list would be unbelievably helpful!3. Raffle Boxes. Ours could not have looked more cheesy. Black and white sheets with company logos, taped to whatever boxes I could find in the mailroom. UGGGGGLY. Functional, yes...but....embarassing. Next time, I'll hit up the dollar store for colorful sand buckets or something. Anything would be an improvement!
4. Prizes, Prizes, Prizes! We were so fortunate to have probably 40 prizes to give out (est). Have a plan for how and when you want them to be distributed. We did ours all at the end of the day. Prizes of value stayed with me or the Sponsor and the rest (mostly books) were placed out of sight and out of reach.
- Sponsor prizes. If the sponsor is present, let them pull the names and give their stuff away.
- Book prizes. We used these as incentive to complete Session Evaluations. For each completed eval, you got a raffle ticket. We gave away about 20 books!
- Attendance prizes. We had...more books! We gave out 4 general attendance prizes and one prize from the overall Event Evaluations which were submitted.
- Additional SWAG. I went around from session to session as the day drew on to distribute other SWAG items we had to give out. The Speakers all did a nice job helping us get that all out to people!
Regisration
Most events so far haven't been the size of ours. With the potential of having over 400 people come through the door, we had to have a plan and have it streamlined. As it was unknown who the volunteers for the day would be, I spent some time writing up everything and making sure I had it as foolproof as possible. Here were the highlights:
1. Separate the list into 5 mostly equal sections. I didn't want one volunteer being swampped with 40% of the attendees in their line.
2. Put as much in the event bags as possible. In retrospect, we could have put the blank name badges with lanyards inside of the bag.
3. Event schedules should be the first thing people see when they open their bag. Alternatively, just put out stacks of them near registration.
I want to sincerely thank the Registration crew: Jes Borland (blog | twitter), Eli Weinstock-Herman (blog | twitter), Christina Leo (Twitter), Aaron Nelson(blog | twitter) and his incredible daughter Dorothy , Andrew Karcher (blog | twitter), Bob Pusateri (twitter), Keith Mescha (blog | twitter), Wayne Gant and one more that I feel really stupid for not recalling who you are!
Recommendations for Next Time
The next SQL Saturday in Chicago, there will be a few things I do differently (assuming I'm the one in that role again).
First, have dedicated volunteers ahead of time for things like: making raffle boxes, PROOFREADING, arranging printing and cutting needs, designing shirts, Speaker thank-you gifts, SSUG Resource Table, Speaker announcements, Raffle distributions, Room monitors, Event Bag assembly. Not that any of these things went awry, moreso because it's just nicer to know they are in someone's hands and will get done :)
Second, ask each vendor to provide a packing list of what they send and how they want it distributed.
Third, make DAMN sure to write down each and every volunteer's name!
Fourth, have better aim when flinging SQLChickens at Tim Ford :)
So, when does the singing start?
Apparently, right after I get all the promised contact information to the Sponsors; all the Speakers get their slide decks loaded; we send the Speakers their evaluations; sort through all the overall Event evaluations; and THEN we send a big Thank You to all the people who actually came through the door. I think that's when the fat lady gets to sing...(no, my karoke doesn't count).
Subscribe to:
Posts (Atom)



