Friday, January 16, 2009

Words Words Words and Wordl

A few folks have been putting up Wordl images about their blogs.

I saw this a while back, and our family put in a bunch of words that were important to us. Goals, interests, and so on. We came up with some interesting word jumbles that described our family. After it was generated, I had no idea what to do with it, but it was sure fun to do anyways.

So, I plugged in my blog to Wordl to see its result. I was expecting to see some words in there that I did not see. And some were more prominent than I expected. Odd. But like any good report, it only shows what it can show. Reality. So, here it is... my blog Wordl representation.

Blog Wordl

So, this got me to thinking, what about twitter? What about my hobby blog? What about my live space that has family trips recorded in it? What about my resume? What about... what other things can we think of that we can use this word jumble on?


Hobby Blog

Live Space


All Articles I've written

Scary stories I wrote the past 2 Halloweens

Google results of searching my name

Wednesday, January 14, 2009

How long until the db shrink process is done?

Before I answer that question, I have to give some history with my association with database shrinkage. As a Developer DBA, i often needed to shrink databases. At first i would simply use the GUI. But I often grew impatient at the apparent lack of progress. I would grow ever increasingly uneasy at not knowing what was going on, how long it'd take, etc. As I learned DB skills, I realized that shrinking is not all it cracked up to be, and I often didn't want to shrink the files down. Maybe the log, but leave the mdf alone, and let it stay a size, so it doesnt have to grow next time it needs too. However, in certain situations, it's important to shrink away.

So, I profiled the gui, grabbed the actions performed and made myself a proc. This proc would be used for many years. The proc would not only do the actions for me, if I asked, but it would report to me as well. This became the default execution path; I would run this proc to report the database filenames with the appropriate shrink commands. And then I could pick and choose which ones I wanted to do. Thus allowing myself the ability to do only parts. My unease decreased, and all was happy.

Except that, on occasion, I would still be uneasy, when even one of the simple steps seemed to take longer than expected. I would start to panic. I often imagine rogue processes growing wings, taking on a life of their own, and starting to remove data, corrupt pages, etc. Of course this is only my imagination as I sit and watch the spinning wheel mesmerize me.

So, fast forward to today. A developer comes to me and asks me if his shrink process should take as long as it is taking. Its been running for 30 minutes so far. I sigh, and reply, yeah. Sometimes, it takes days. And all the while, I believe nefarious actions are being taken without my knowledge by this seemingly rogue process. How can I tell how long it should take? Without actually doing it, and remembering? How long should it take? Can it take a long time?

Well, I let him know that it can take a long time, and I have no idea how to check or know. He leaves thinking less of me, I'm sure.

At this point, I turn to the Twitterverse, and posed the question there. A very simple question.

#sqlquiz you are shrinking a database. its taking a while. how do you check progress?

I received quite a few responses. Some folks seemed to think like I did, simply sighing and wishing. However, AaronBertrand responded with this.

@tjaybelt I forget if shrink is one of the tasks that reports percent_complete in sys.dm_exec_requests. Somehow I doubt it.

This spurred others on, and tweeps started trying it out. Success was found, and we had a way to determine the percent complete on the shrinkage. Yeah. Hazzah!

So, when I got back in touch the developer, we tried it, and alas, it reported 86%. Yeah. We knew that it was doing what it had originally set out to do, and was not off removing indexes or truncing tables. It was still doing its shrinkage, just taking a very long time. But hearts were lightened, smiles increased, and laughter soon ensued. We knew! Had numbers!! And with those numbers, could guess execution time to completion.

So, if you read this far, or skipped down, I'll summarize.
To determine the percent complete of an operation, such as shrinking a db, you can use sys.dm_exec_requests to pull this value out, and feel better about everything.


Friday, January 09, 2009

So there I am

So there I am, in the middle of some SQL problem. Trying my best to solve it. But it seems to be getting the best of me, when I hear the most unusual noises. The first one sounds like a fire drill noise. Its alarming to me, and I stop working on my problem for a second to orient on the new noise. When, suddenly, it stops. So, back to my problem I go, but for some reason, I can't quite remember what the problem was. Now this is truly odd, as I often have little mental lapses, but not to this degree. Not even being able to remember the issue I was so intent upon only moments ago, seems wrong. At this moment, I realize there is another noise disturbing my calm. It's a dog barking. And not just once in a while, but an almost turrets style stream of canine cacophonies continually spewing forth from his clean mouth. Its almost a constant outcry. On and on he barks. Why won't he shut up?

It's about this time that I realize the SQL problem never really existed, except in the shadowy recesses of my own mind as it had been concocted from my dream state. The reason I must have been struggling with an unseen, undefined SQL problem must have been the result of my mind trying to interpret the inane caterwauling of the neighbors dog into something my dreamed encased brain could understand. Why not an unsolvable, unknown SQL problem?

In any event, I struggled to regain sleep, as almost anything would be a reprieve from the continual noise emitting from next door. But all my attempts were in vain, and I finally arose. As I stumbled around the darkened room, I was increasingly annoyed at the dog, and the loudness of his bewailing the cold while he awaited some human caretaker to let him back into the house. Apparently his only recourse was to attempt communication with the neighbors, as his warden was not giving him any attention or love at the moment, having imprisoned him in the cruel and cold outside world.

I tried to go on with my morning duties, but it was soon apparent that I was not the only one suffering from the boisterous neighbor. All of my family were now up, and the children where asking what was wrong with that dog. Actually it was me, acting like one of the children, begging the only other adult in our home to fix this thing, make it stop, I'm going crazy. So, my good wife picks up the phone, and calls the neighbor to let them know that their dog is trying to gain their attention for something, and could they please attend to its needs? As usual, the neighbor lets us know nicely that it's not their pet that is causing the boisterous commotion. This is the typical response, as their animals never make noise, never invade others property, never use the sandbox as a toilet, and so on.

After the phone call, I asked my wife what had transpired, and while she related the conversation, the dog barking ceased. That was it. No more. We were once again, inside our own home, with our own morning preparation noises to bother us. That, and the voices in my head taunting me with SQL problems I would soon face.

Monday, January 05, 2009

Goals Goals Goals

First a recap of last year. I consider last year a banner year in my career advancement and in the community. I met and exceeded a lot of my goals for the year. Others, I didn't do so well. I figured it would be good for my ego to boost it a bit and remind myself what i did accomplish, then list the next set of goals.

Published articles
I was lucky enough to get inspiration a great many times last year, and published articles with
5 articles published to SQL Server Central.
4 articles published to SQL-Server-Performance.
1 article published to Simple-Talk.
1 article published for SQLServerCentral was released in the "Best of" book this year.

Just before the PASS summit of 2008, I started to blog and decided to keep the ball rolling with as much SQL related content as I could muster. I have had quite the surprising interest in the blog, and hope to continue it. To date, I have had 363 visits came from 19 countries/territories to the site. I have been mentioned by other folks in their blogs, and am grateful for it. As the inspiration hits me for items, I will continue to post more. I hope that it can provide a help, in its fashion. I do not consider myself an expert, or that I should be read over anyone else. However, I do have a brain and an insight that may prove useful, and for this purpose, I will continue to produce content.

I spoke for the PASS DBA SIG early in the year.
I spoke in brownbag lunch at work.
I spoke at my User Group meetings.
I spoke and help organize 2 CodeCamps.
I spoke and help organize 1 MS Launch event.

I started up a Special Interest Group with PASS about Auditing and Compliance
I continued to volunteer on the Chapter Committee
I started being a Regional Mentor with PASS
I continued (struggled) to run my local chapter
At PASS, I signed up to a couple volunteer posts
I have spoke and helped run local events

On May 13th 2008, I signed up for a Twitter account and started tweeting. My goals here were to talk primarily about SQL stuff. I followed quite a few othe DBA folks out there in the community and soon, it took on a life of its own.
At the PASS summit, there was a huge use for twitter, as i wrote about in my article on Simple-Talk. Before and after, twitter has been a huge help to my career, as well as networking. I have had 150 followers, though some have dropped off from time to time. Over the christmas holiday, I think I gained 30 followers.
So, this avenue for networking has proven worthy of its time and effort. I have forged relationships with many people that I have then been able to use to our mutual advantages.

So, looking back at these things, I have to say I am impressed I was able to accomplish them. A few were not goals, but organic growths on their own that I simply participated in. Writing articles and blogging, these were items I struggled with and tried hard to produce. Luckily I was able to find multiple topics to write about that were interesting to at least a few folks out there.
There have been many personal goals that i accomplished last year that i did not detail here. For example, after tearing my AC joint in my shoulder, I wanted to be able to start exercising it within 1 month, and be back on my dirtbike within a month of that. I accomplished both of these goals. More are to follow as I strengthen it. In my personal life, i have quite a few goals, but let's keep this surrounding SQL and my career path.

Looking forward

1. I want to do more with my local user group.
I have set aside a few months for meetings (we do not meet monthly) and am actively trying to get these organized with content, sponsor and location.

2. Produce presentations.
While at PASS, I set myself a goal to produce 4-6 presentations for the year, with no clear location or event in mind. Simply produce content that can be shared at an event.

3. Speak at SSWUG.
Back in December, I was contacted with a proposal to produce content that may be accepted and used in the next Virtual Conference. This was a huge suprise to me, and I hope that I can not only produce the content, but speak at the event.

4. Perform Regional Mentor Duties.
When I was first assigned to Regional Mentor with PASS, I contacted those User Group leaders under me, and let them know of our goals and my contact info. I have since met and spoke with some at PASS and virtually. I want to better help these individuals with anything they need to keep their User Groups running well.

5. Blog
As the feeling hits me (like now) I want to produce content for my blog that can actually help people. How will this post help folks? Maybe its just meant to help me, and I consider myself part of that group of folks that I intend on helping. Others may find the content useful, and that makes me feel like its not for not. But at the core, I blog because I want to keep a record of things. And I secretly hope that others find it useful too.

6. Articles
As last year has shown me, I can write. I was happy to find this out myself, and am more excited to produce more content. Last year, it seemed easy, because I had specific projects that I could document in the form of an article. Then, when that well ran dry, I had to invent content. This was a tough hump to climb, but I did it. Now I know it can be done, and I want to repeat this as much as possible this year.

7. MVP
I was nominated last year to be an MVP. As another DBA told me, being nominated was a huge step. I was so appreciative of this honor. I did not get awarded the distinction of being an MVP that time around. So, my goal this year is to do what I need too to become nominated again. Since what I ultimately end up doing is judged by a mysterious litmus chart, I do not know if i will ever get the award. So, all I can truly do is do what I do.
As one friend recently said, those that are awarded MVP status deserve it. So, this goal is not to become an MVP, but to be eligible to be nominated.

8. Read
I subscribe to a great many blogs. I want to keep up with them. I am currently about a month behind on a lot of them, and need to close that gap. I would like to have a constant rolling window of only a few weeks of content that I need to read. This means i need to spend more time at nights and on my own after work catching up. I tend to read a little bit during the day at work, but its not enough to clean house. Someday, it would be nice to be at #InboxZero for my blog feeds.
I have lot of other content that I can read as well. Articles published on my favorite sites, books, magazines, etc. I want to read more from these as well. A couple years ago I had a goal of reading an article a night from the "Best of SQLServer" book that is produced each year. I made it pretty far that year in reading, and got 3/4 of the book read. I would like to do something like that again.

9. Topics
There are quite a few topics that I feel I could know more about with SQL Server. These seem to be on a lazy susan, spinning by me at random moments, to taunt me with the items I have more to learn about. Every once in a while, I want to pull one of these items off of its protected shelf, dig into it, and then permanately place it on another shelf of things I have learned well. I just hope that the last shelf has enough space, and I don't end up moving items between the two locations as I loose knowledge of one, to gain knowledge of another. My HDD seems to be full up these days.

Well, there you have it. A look back, and a look forward. I will have to reference this from time to time to see how I'm doing. After all, metrics need to be gathered, reporting of statuses, etc. Hum, maybe I can devise a database to organize this list, and... ha, there I go on a side project that is not on the list.
So, this reminds me of one that is not on my list.

10. #InboxZero
I want to maintain InboxZero habits, and foster new ones. For both home and work. Becoming more organized will help out tremendously in so many other aspects of my career, life, work, and so on. InboxZero!!!