Tuesday, January 22, 2013

Pro SQL Server 2012 Practices 'Be Your Developer's Best Friend' Chapter Review



In the new Pro SQL Server 2012 Practices, chapter 1 is all about the impossible. It is entitled 'Be Your Developer's Best Friend'. I tease. This is one of those soft skills that we all struggle with from time to time, regardless of which side you stand on this tale. I started my career as a developer, and moved into the database space over time. I now sit on one side of this task, as I have sat on the other side not too many years ago. It is not an easy thing to do, but a necessary one.

Jesper Johansen, the author of this chapter, takes on a journey through the why, how and when of accomplishing this task. He details the different focus of thought that occurs when you are a developer as opposed to a DBA and why these focuses are an important makeup of the title and job each hold. As his history within the IT world unfolds, you can see how he implemented the skills he will later share with you as the reader, helped him within his career.

One of the tasks described within this chapter is something that I have often known, thought about doing, but simply never seem to take the time to do. I was inpsired when I read this task to share this with my team of IT folks, and hope that we can start implementing this in our project planning. Its not rocket science. Its creating a map of your existing environment and map of what you want it to be. We all too often will talk about these changes, discuss them in meetings, actually create individual tasks to perform various aspects of this transformation. But rarely do we actually just map it all out. All of it. The entire system. I believe that doing this would greatly help. As I read this I am pompted to really try to map out one of our projects, as it has floundered over time, never really getting traction towords completion.

He details stories of his own experience where dialog had bridged the gap of understanding between teams. Including multi faceted teams comprised of different focuses, with a single goal. Putting people together, explaining your point of view and focus, allowing them to do the same, working together towords a single goal, will drastically help out any organization and project. Instead of allowing the old stereotypes to perpetuate, take a stand, make the change yourself, start with you and create the tools necessary to start the dialogs and discussions. These points are well received by myself as I read his suggestions. I have seen it work myself. But I need to remember to continue with these seemingly simple tasks. Its not a one time task, but continual. Just like all relationships, they take constant nurishment and work.

I love that he goes into detail of how to create the documentation necessary to assist in this task. Documentation is a bane, is difficult, it awful to produce and keep up to date. But that same documentation will save you. It is so important and necessary to produce, keep up to date, and use. It took me several years to realize this, but once I got the vision of the importance of documentation, I became a true believer. I would say though that it can become a chore and degrade your work if not done properly. Just like the old saying goes about seeing everything as a nail, if your only tool is a hammer. Remember that documentation is a tool and needs to be used properly. Don't over-do it, or under-do it. It is nice that Jesper not only tells you as a reader to create this documentation, but provides some assistance with how to create it as well.

He also points out some interesting techniques where you as a DBA can provide tools to developers to perform the tasks that the DEVELOPERS need to perform. I once had a DEV that needed to be able to insert records into a table. The table was production. I told him he could not. He got frustrated. I devised a tool that allowed him controlled access to perform that task, trained him on how to utilize this tool, and set him loose. He and I became good friends at work through this interaction. I was not the evil DBA that simply wanted to curtail his access. I simply was protecting our systems. His system, my system. Protecting it from harm. Once he understood this, and accepted his limited access, which would protect him and the system, we moved forward. Jesper details several tools and techniques that have helped him perform similar protections, while allowing protected access to systems.

As he concludes his chapter, it is mentioned that these are large tasks with small sub tasks. Its like eating the elephant; doing so one bite at a time, it can be accomplished. The same holds true with this goal. It will take time. Pick the right individuals to team up with. Take it slow. Make progress, measure the progress, share the progress, and get better with each iteration. It can be done. With the tools provided within this chapter, you should at least be able to be inspired to set out on this journey yourself, while at most, be given the tools to implement as is from the writings of this author.

I enjoyed reading this chapter, as it rang true with many of my experiences. Through reading this, I have been inspired to add to my toolbelt from those suggested tools the author shares. I have thought of scenarios where I can better improve my interactions with others. I have thought about ways to implement some new tasks in my team as well. I hope that through reading this chapter, I can be a better IT professional, a better DBA. I hope that it helps you as well.


http://www.amazon.com/Server-2012-Practices-Professional-Apress/dp/1430247703

Friday, January 04, 2013

My tips on getting organized

I like to think that I am an organized person. But, sometimes, I must admit that I am not. Even though I have several tricks that help me get organized on some aspects of my life, I often fail to use those same tactics in other areas of my life.

Recently, a friend posted something online about getting organized. I agreed with her on her status, but did little to help the effort. I then realized that I should write more, and actually help, instead of simply agree, like I was the world's bese organizer and had it all going on. So I added a little bit more. She mentioned that the advice I gave was really helpful and that she was going to try it out. I felt good. I patted myself on the back. I was done.

Then a couple days later, I was at work, staring at my computer desktop, which has been a mess since, well, about a week after I started this job. Its one of those tasks I simply 'will get too soon'. And have never done so. Simple. Clean up your desktop. Make it useful again.

So, I sat back, having just received kudos on a job well done on organization prowess, and realize I should apply the same techniques described to my own life. Minutes later, I had put away items that had lived on my desktop for over a year. I removed duplicate items. I stored items where they should properly go. I regained control over something simple in my life that had become a burden. In mere minutes. Simple. But I hadnt applied those techniques in this area, and I hang my head in shame.

Now I share with you those simple steps I applied.

Do a small are at a time.
Take a box with you, large enough to hold everything in the offending area.
Put everything into the box. Everything.
Take the box elsewhere. sit down and go thru it.
  Do this while on the floor watching tv so you arent paying close attention to what you are sorting.
The things that are worth keeping will be put into a pile.
Most likely you will have a pile of things that need to be relocated to other areas. This is ok.
And you should have a pile for the trash. Put all the trash into the trash. Do not sort it again.
Do not sort any of the piles again.
  Keep, Relocate, Trash.
Then put things back where they have been sorted to go.
 
If items still wont fit, repeat.
If you pause while stuff is still unsorted, thats ok. Wait until you have time. But keep it in the unsorted box until you have time to properly sort it.
Do not redeposit it back where you got it.
 
Then move onto another area. Maybe on another day.
 

Monday, November 12, 2012

T-SQL Tuesday #36 SQL Community / What Does the Community Mean To You?


Chris Yates is hosting the TSQL Tuesday party this month.  You can read the original invitation here.  The rules for participation are in the invite.  Check it out.


T-SQL Tuesday #36 SQL Community / What Does the Community Mean To You?

Many years ago I went to college at BYU (Brigham Young University) and studied computer science. While in school, I found it easier to get thru classes, to learn, and to share by associating myself with others. I had a Calculus class where I met a young lady retaking the class to raise her grade. We became friends and she helped me study. This was mutually beneficial. She was able to teach and mentor, I was able to learn and study. We both gained. But we became friends along the way. I also found a study group in a Physics class of similar folks. We all got to know each other, used each other, and benefited from each other. This wouldn't have worked had I not given back to them, nor would it have worked if they only took from me. Symbiosis.

Fast forward a few years, and you find me working for a software company. I wasn't the first one there, so I was able to learn from a great colleague. Nathan was a very smart developer, and was patient with me as he taught me the systems he created. I was able to take them over and develop them further than he had for a time. I was able to, in turn, teach others about said systems, and we all progressed. The company benefited. We individually benefited. This job got me my first exposures to databases, a benefit that has served me till this day.

I still am friends with some of these folks. Some I follow on Facebook. Some I've not seen physically in a long time, but those connections have been made, forged, and are hard to break. We may no longer be colleagues. We may not see each other often. But somewhere along the way, we became something akin to family. Not blood. Not relations. But if there is a level above colleague and friendship, I’m not sure what to call it. Family will suit me fine for now.

Every Sunday I go to church and interact with people that have a similar belief system. Some of these folks are my immediate neighbors, while others are neighbors in title only. As we interact, we learn about each other, our needs, our wants, and so on. Each of these interactions tends to build on the previous ones, and soon, friendships are formed, then a little more. Sometimes not. But those that become friends, sometimes become family.

My career started a number of years ago. In my early career I worked with colleagues. They were the ones that I leaned on when I needed help. But they were few. As my career progressed, I was able to learn more, meet more people, and have more individuals in my corner of influence. If I was able to help them out and they were able to help me out, we both benefited. As I leaned my career more into the SQL world I was so lucky to fall into a new family.

Fast forward to today. I've found another family. It’s the #SQLFamily. It’s just like all the other families that I've participated in previously, just on a much larger scale. It started with a local community of like-minded individuals participating in a User Group. We were able to support each other in our day jobs, as well as while attending functions as a User Group. Soon we were able to meet other extra-regionally folks to add to our network. This has exploded to the point that when I attend a SQL conference, I can rarely attend without knowing someone at the event. At PASS Summit, it feels like 'DBA Summer Camp', where we get to see our friends from last summer. We get to high five, hug, or simply say ‘hi’ and then recount our stories from when we last saw each other. The tales become those little strings of connections that further forge those bonds, further those friendships, furthering our familyness.

When I got hired at my current job, those performing the interview googled me. They found out quite a bit about me through this investigation. They knew that I was on twitter and even researched the tweets. Soon I was able to show the power of this tool and the #sqlfamily through gaining answers to questions while sitting in a meeting with my team. Some topic had came up and I thought to reach out to my #sqlfamily for answers. Before the meeting concluded, I had #sqlfamily members answering me and helping me out. My boss sees this as a huge benefit. They didn't just hire me, they hired a slew of other technical individuals that are simply a keystroke away. Hundreds. Soon, thousands. 

I never want to go back to before. Alone, in my cubicle. Trying to figure things out with the knowledge I have or can find on the interwebs. I wouldn’t ever get rid of my friends, no, my family.

Join my family. Welcome me into your family. Share with me, and I will share with you. We will all benefit. Our careers will be better for it. And along the way, we will become friends and family.

Friday, November 02, 2012

Tips for SQLPASS summit 2012

I haven't blogged much about this upcoming event. Having attended it for many years, it has become part of the background noise that is my life and I have successfully attended it enough to be able to almost do it in my sleep. Along the way there have been some tricks and tips that have made my experience all that much better. I share these with you now, in the hopes that you can too learn from them and use what you feel necessarily fits into your plans and packing.




tip #1
Bring some clothes to workout in. Then you'll have them, and have few excuses to get your sweat on

tip #2
Bring a couple powerstrips and charging cords. Some for your hotel. Some to schlep with so you can get your power on

tip #3
Bring an unbrella. A small one. Hide it in your bag so you dont get made fun of. Use it to keep your dry on

tip #4
Bring business cards. share these with folks. Get their cards. Make some friends. Get your friendzone on

tip #5
Bring sunglasses. you may spend sometime outside. not much. in case there is sun, you'll want these to
get your shade on

tip #6
Bring enough clothes to cover you properly every day, but not too many to weigh you down. Get your apparel on

tip #7
Bring snacks. Your favorites. Just a few. It'll help on the plane, between sessions. Make sure you dont get your hunger on

tip #8
Bring good shoes and socks. You may spend a lot of time sitting, but the walking part will still happen. Get your walk on

tip #9
Bring your smile. It may be tough after a few days to keep it on. But its worth it. Be happy. Make friends. Get your smile on

tip #10
Bring your brain. defrag it, clean it up, make room for lurning. you will have so many chances to get your lurn on


Tuesday, June 12, 2012

T-SQL Tuesday #31 – Logging

Today’s T-SQL Tuesday, hosted by Aaron Nelson (@sqlvariant | sqlvariant.com) has the theme Logging.



A little background into what my company does first. We teach English to the children of the world. That's our motto and goal. We do this thru a program that kids run at school now, at home soon, and elsewhere. This interactive program assesses them, places them within the product, and then teaches them English. That's the basics of the product. 

So, there is a kid out there somewhere, that is logging into a computer, connecting to a database server and media server via his browser and our application. This app feeds this child activities, records their actions and responses, keeps track of where they are, where they need to be and so on. All this data gets stored locally on servers at the schools or districts. Periodically, this information is sent back to our corporate offices, where it is compiled into actionable information to help with sales, support, enhancements and so on.

Its a lot of distinct data. I can see a particular child's information and responses. I can see a report on an entire district. I can see what versions of operating systems are being used in the field. I can see how much ram is being used by some machines. I can see a lot of information. And it comes in in various forms. 
Some of this information is sent back to us using MS Sync Framework, while other data is put into a proprietary format and zipped up and sent to us via web services. Other data reaches our home systems in a variety of ways. And we need to know what its doing, how its doing and that its still doing it.

This is where my logging tale comes in. We log a lot of the goings on into our various databases. 

I keep track of the data files that are sent in to us via web service. There is a job that runs every 15 minutes and goes to a few particular directories, counts the number of files within that directory and the max date and min date of the files contained within. This information tells me a tale of a process. Is the process running? Is it collecting similar amounts to what it did last week? Is the service that delivers the data files ON but the service that processes them is OFF, since the size and quantity continues to grow? Are any of the services in a hung state, preventing typical processing? All this can be determined by the collection and interpretation of this logged data. All day long its logging what it can collect, and humans and TSQL decipher it into reports that help tell the tale of whats going on.

A service that recently was discovered to be OFF apparently doesn't have sufficient logging on it. This service collects error log files and processes them. For some reason it was OFF. Nothing was logging its process and we were caught unaware that it was OFF for an extended period of time. We need to implement several things to log its processing and functionality. Many layers of logging. For example, if something was watching the folders where the log files were deposited, it could tell me that the quantity of files is increasing. If we had a process to determine if the service was functioning, that would be helpful. If we monitored the server that these services reside upon was up and running, that would be helpful as well. I am sure there are other things we could implement to log the goings on of this process. And sometimes, more than one is necessary to ensure proper coverage.

Another simple logging process that I have watches the number of unreplicated commands for several native replication publications. This tells me the tale of how my replication is processing. However, this may be misleading, unless I also know a historical average of replication commands we typically process on a given day. And all this is for naught if the actual replication jobs are not functioning. So I also log if the jobs are enabled and running. If they are not, I get an alert, so that it can be remedied.

All told, I have spent countless hours enabling and creating logging processes that simply sit and watch another process, and save the data they collect. Something will collect this data and report on it, letting me know that all is well. And with this knowledge, I know that we are collecting the information, the valuable information that can help sales drive to their goals, that can arm support with data about problems in the field, that can ease my mind that internal processes are functioning as expected. All told, logging is my best friend and makes my day to day job easier, empowering me to see beyond the current fire, over the horizon, into the next potential problems and head them off at the pass. Logging makes me a better Data Professional.

So, remembering that what I do, is all for the kids. Proper logging of my databases,its attendant processes and its data, makes kids like this


not like this poor kid, who obviously is suffering because of my lack of logging.



Sunday, May 13, 2012

SQL Rally slides, demos, templates et. al.

This is a quick post to indicate the location on Dropbox of my SQL Rally 2012 pre-con materials. This includes all my sessions, as well as all but one of Chris Shaw's sessions.

download



Thursday, March 15, 2012

Limerick Contest 2012

My company is very creative. We have writers, designers, video, audio, artists, programmers, etc. There are often contests that let folks participate in cross culture from their day job. Cooking contests, video contests, etc. Its quite enjoyable. I myself have created several wood creations that are on display that have garnered compliments.

This month, and this week, being St. Patrick's Day, they are again holding a Limerick Contest. I started with one word. Reindexing. Mainly because its one of the words I have reused over and over to describe what I do. Always reindexing. Mainly as a joke, and as a bridge to those that may not actually know what I do on a day to day basis.

So the limerick started with that word. Actually it ended with that word. Which made it interesting to come up with rhymes. Many versions were attempted, and some of those were shared with individuals and the public, prior to the final draft. Here it is without further adieu.


What's a DBA? It's perplexing...
He sure seems busy, it's quite vexing!
He mumbles bizarre phrases.
Stuff like Server Side Traces,
Kill, Schema, Cursors, Reindexing!


Wednesday, February 29, 2012

Chili cook off

today is out annual chili cookoff. I did not participate last year. But have thrown my chili in to be judged this year.

here is my recipe.


Alabaster Chile con Pixie (Ambrosia)

4 Jar Alabaster Legumes harvested from North facing walls of Machu Pichu

3 small Bottles chopped Pungent Capsicum Fruits

2 medium vessels Alabaster Creamy Goodness

4 Shorn, Braised, Shredded Pixie Pith

Some Cayenne Pepper

3 Pinches of Pixie Dust

Wednesday, February 22, 2012

So you wanna attend our SQL Rally 2012 Precon?


Chris Shaw and myself will be putting on a Pre-Con for the upcoming SQLRally in Dallas in May 2012. We are excited. I am excited. Here is a link to our Pre-con, so that you can check it out yourself.

The content that we have put together comes from trial and error in our day jobs. As well as having been packaged and presented in other forums, including SSWUG vConferences, SQL Saturday events, User Groups, and so on. We are proud of the content, and the ideas we have realized, and we simply want to share these with others.

It is our hope that thru the presentation of this information we can help you alter your day to day practices, become better at your job, and help us along with others realize how to be better at what we do. You would be amazed at the things I learn from you as I stand in front of an audience to teach; I end up learning a lot about myself and what I do or worse, don't do.

Taken directly from the abstract, you can see some of the topics that we will be discussing.

  • The “Why” or “How” questions that come up
  • why should we upgrade our servers
  • how much server power do we need
  • what is the best process to follow
  • how should we manage our releases
  • a checklist that has proven to foster stable database servers
  • database utilities to automate these checklist items
  • learning about change management options
  • disaster recovery options
  • gain an understanding of these tasks
  • leave the session with an ability to help improve systems back home
  • be armed with

o examples

o ideas

o suggestions

o actual code

o samples

o documentation

o templates

o other tools



This we will do thru presenting what we are calling sub sessions of informational topics that we have put together. Like I mentioned, some of these have been presented many times before in different venues, while some content will be seen for the first time at this event.

To give you an idea of what lies ahead, if you attend, we will start the day with an introduction to all that we will discuss. We will even open up some of the time to vote on several possible sub sessions we will have prepared. This means that we will have enough content to speak and teach for 10 or more hours, but allow you, the audience, to choose some of that content yourselves, at the onset of the event. It will all tie together as we traverse the tapestry of what it means to Be a DBA, and you will leave with a larger toolbelt of utilities than when you entered.

Our core content will be discussing a Checklist of tasks to do daily, weekly and monthly. A Utility Database that will empower you, arming you with valuable information to direct you activities. We will dig deeper with a sub session that discusses Data File Sizes and the importance of properly sizing your databases, as well as collecting the data you need to arm you properly to make valid decisions. An interactive sub session dealing with Disaster Recovery will allow you to interact with us and the audience to learn about DR and provide the best solution in several case studies we will all do together. Helping you get a handle on Release Management and various tools as well as processes you can implement to ease this process will be discussed. The day will finish up with the task we never actually get to; Documentation. We will show you various methods for documenting what we do as DBAs and you will leave with examples, templates, and so on to help you on Monday morning back at work.

I would suggest that you bring several things to this session. A jump drive to collect our code, demos, samples, templates, and so on. Paper to take notes with, adding vital pieces of information you think of and learn to add to your utility belt. A remembrance of your problems and solutions to these various topics, so that you can enlighten us with how you solved it in your past. As well as an ability to learn from us and others in the audience.

The goal of all these topics, all these demos, templates, etc. is to get your brain thinking and interacting with us, so that we can all become better Data Professionals. Allowing us all to come away from this session better armed to go back to our day jobs and excel.

Please, if you feel so inclined, sign up for our Pre-Con. Come and learn from us as we learn from you.



Saturday, February 04, 2012

SQL Rally 2012 - I'm hoping to present a Pre-Con

This is a Shameless Plug to get your VOTE. Read on for some back story, and information about my and Chris Shaw's pre-con we are hoping to present.



SQL Rally is coming soon. May 10-11, in Dallas Texas, to be exact.
A couple days before this event, you will find various souls attending Pre-Conference sessions. 6 have been selected already. You can see them here. There were a few Pre-Cons that were not selected initially and have been served up for Community Vote. You can vote for them here.

As you peruse the available sessions, you will see one called "How to be a DBA - A Utility Belt of tools". This session is one conceived by myself and Chris Shaw (blog | twitter). The idea for this session came about as I watched Chris present last year in Utah his Utility Database session. It was then that I realized that he and I had had very similar experiences as we have supported databases throughout our careers.

Back in 2004 I became involved with PASS when I attended my first summit. I had been attending a local User Group and had even spoken a couple times at the User Group meetings. This was a scary and exhilarating prospect to stand up in front of people and talk about stuff. Some stuff that others knew much more about than I did. But I did it nonetheless. And loved it.
I have found that as I speak to folks, sharing my knowledge, I always learn form them as well. Really. This isn't one of those things you say. I do enjoy the interaction and almost always learn from the experience. Often it is new ways to look at what I do. This is priceless to me.

I have spoken at various events, User Groups, Code Camps, SSWUG virtual events, PASS SIG meetings and SQL Saturdays. As I have spoken, I have stretched and grown. I am a better DBA now because of my past experiences, including speaking and presenting. As I have spoken, I have challenged myself into bigger an better. Thus my desire to perform a pre-con at SQLRally. At the other events I have presented at, I have always felt bad that my sessions were level 100, and not level 300. But I have a certain set of skills and ideas that I feel are appropriate for this level of session. I often think back to when I started in this career, and had wished that someone would have taught me the things that I am teaching.

This same session was presented in Colorado Springs SQL Saturday 104. I was pretty worried about it, and hoped that it would come across well. Speaking for an hour is one thing. Doing that for 4+ hours is bigger. Doing it for 8 straight... well, I'm not there yet. First things first.

This pre-con will discuss various topics. Some of these I have presented many times in other venues. Chris has presented his portions as well. We are fine tuning this information, and regurgitating this for your benefit.

For this session, we will talk about the following:
  • Daily/Weekly/Monthly DBA task checklist
  • Utility Database
  • Monitoring
  • Release Management
  • Data File Size monitoring and manipulations
  • Documentation
All these topics will be presented in such a way as to help you, the attendee, the ability to learn valuable skills, and implement them when back in the office the next Monday.

After all this, I am asking you to look at the sessions available at SQL Rally. If you have some that stand out to you, vote for them. I would hope that mine would be voted for as well. Even if you will not be attending, know that this session will help someone out.

I hope to be able to present it. If not at SQL Rally, then another time, another place. I will continue to push this session. Practicing the presentation. Fine tuning it. Sharing my knowledge and ideas. Hopefully helping someone, somewhere, sometime.

Go and visit Chris Shaw's blog where he too pleads for your votes here.


Wednesday, February 01, 2012

So You Want To Be a DBA?





I recently was contacted by SSWUG.org to write a few articles. Its with trepidation that I accepted this challenge. There will be 6 articles in a 6 month period with various topics.
The first of these topics was what i thought it meant to be a DBA, and advice I could give others about this job, its tasks, and what motivates me to do it.

I sat down a couple times to write this article. I had a couple failed starts, like most writing inspires from time to time. However, as I thought about it, and about what inspires me, I was reminded of the tale I have been telling folks for years now. That I feel as if I am in charge of keeping a light on in a room in my company. That's the simplest explanation I have repeated over the years. Not a lot of glory, but its a necessity. As I thought about this, I expanded this tale into a couple of sentences and then a few paragraphs. This became the intro to my article.

I was worried about the word count. When one is given an arbitrary number of something to create, it always seems to worry me. 750 words seemed like a huge amount of words. The end article ended up having 3600 words to contain all the spewing about the subject I could muster. After a lot of editing, and tweeking, the count stood fairly high. They were all important words. They conveyed the meaning I wished to convey. So I went with it.

The article basically tells the tale I mentioned above, embellishing a bit to paint the picture in your mind. It then breaks down the tasks into 2 main tasks. Learn about your Data and Love your Data. Within each of these, you can further break down more individual tasks.

The article was broken up into 3 parts and will run 1 each week for 3 weeks. I hope that you enjoy it. Enjoy my perspective. Enjoy my tale and my verbiage. Enjoy the information that I hope to help you learn. Enjoy my article.



Sunday, January 15, 2012

SQL Saturday - Colorado Springs #104

I had a great opportunity to go to a SQL Saturday event in Colorado Springs recently. It was my second time attending this event.

As a Regional Mentor for PASS, I have felt responsibility to contact and assist user group leaders in my area of stewardship. As I have contacted these individuals and fostered relationships with them I have become friends with many of them. Chris Shaw (blog | twitter) is one of these individuals that I have become friends with. Last year, Randy Knight (twitter|blog) and myself flew out from Utah to attend. The event was so much fun and we made so many great contacts that the next Utah SQL Saturday we had a large contingent from Colorado to attend our event. In response to this, I again felt the need to attend their event.

This time, instead of presenting during the regular SQL Saturday event, I had decided to try my hand at a Pre-Con session. I had discussed with Chris Shaw the possibility of combining our skills in presenting and dbaness to share a pre-con. It seemed like a good idea and I hoped that we would work well together. We had not really done anything together, so I was leery that we'd fit. I also didn't realize that when I asked him, he was the primary leader for the SQL Saturday event. With all that said, he agreed, and over the course of the months between SQL PASS Summit and the SQL Saturday event, we planed, schemed, and created presentations to present.

In an effort to sit down and do some final work on our session I asked if I could hang with Chris the night before the pre-con, staying at his house. This would simply afford us a lot more time to spend together as we prepared for the next day. Chris was a trooper and allowed me to hang with him, even picking me up at the airport in COS. I arrived a little after 3pm, and planned on spending the evening preparing for our presentation. What I had no idea that was going to occur was the quantity of stuff that needed to be done still for the event.

You see, Chris's wife, Gia Shaw(twitter), had been working like crazy to prepare for this event. Imagine your dining room in your house. A normal sized dining room, in a normal sized house. Now on the dining room table, picture boxes full of stuff. Now picture boxes full of stuff on the floor. In fact, picture boxes almost in every nook and cranny of your dining room. This is what Gia and Chris had produced in the past few weeks and days prior to the event. An incredible amount of stuff had been collected and needed to be transported to the event. AS soon as we got to Casa Shaw we started loading stuff up for a trip to Mr. Biggs event location to deposit items. We filled a vehicle up with gear. All in all, I believe 4 vehicles of stuff was transported to the event.

After dumping things off, we went to dinner nearby. My brother and his wife met us for dinner, along with Christina Leo (twitter|blog). We had a great dinner, actually being served dinner by a Tom LaRock (twitter|blog) look alike. After dinner and antics, Chris and I returned to his house and prepared for our pre-con. We ended up staying up later than we should have, but got enough sleep to get up early for the pre-con day of Friday.

The morning was without issue as we took loaded vehicles to the even location and got ready to present. We had to setup the projectors and get things situated to present, as attendees started showing up. And before we knew it, the event was underway and we were presenting on ourUtility Belt session. I felt that the session went well, lots of discussions occurred with the attendees. Happily, after the session was completed, I believe 5 different attendees handed us jump drives so that we could copy our slides, demos and templates for them. This always makes me happy to provide information as well as something tangible to assist folks in their day to day jobs. This is why those of us that present, present. To share. I love it.

I had no idea if I could make an entire day of presenting. Granted it was not a single pre-con where I talked the entire time myself, but it was not as hard as I thought it might be, and the time flew by. I was happy that I had enough information to share and had a great time doing it. I even heard from someone that heard from someone that it had gone well and they had enjoyed it. I'll take it. I love hearing that it went well.

After the pre-cons, we were able to make our way over to the speaker dinner just a bit north of the event location. Here we were able to see all the speakers, some sponsors, and many volunteers of the event. It is always a great time to spend with #SQLFamily prior to and after an event. This networking is always a great time and very profitable. Not always in the means of dollars, but profitable to your career. I had the unique experience of meeting one of my heroes, and was pleasantly surprised to have him introduce himself to me, eager to meet me as well. This always makes my day.

After the speaker dinner, my brother picked me up and took me to his house for the night. You can see that I try to spend as little as possible on these events. I try to scrimp where I can, so that I can attend more and more of these events. Bundling these events with seeing friends and family is a bonus. Seeing my brother and his wife and kids was a joy. We spent most of the time I was at his house wrestling and playing with cork pop guns. They were a blast to see and play with, and exhausting. We stayed up too late, as is normal for these events. We played. We talked. We enjoyed each other.

The next morning, Saturday, I got up early and took off, without seeing anyone from my brother's family. He lent me his truck to drive myself to the event. I made it a little later than I expected, but early enough to get some breakfast before the rocket of SQL Lurn took off. I love to volunteer for these events and learn as well as serve where I can. I was grabbed by Kieth Tate (twitter) grabbed me and asked for assistance as he presented. This was his first time presenting, and i was more than humbled to be asked to help. I sat in on his presentation and learned some things I took to my team to implement.

One of the favorite things with this event is the networking that occurs. Between certain sessions, games are played that thrust us attendees into situations where we must interact with each other. Bowling, pool, lasertag. You would think that these are simply fun activities, but they afford those that play a chance to interact with each other and build friendships, outside the normal SQL LURN. Its unique. Its a blast. It adds to the overall experience. I love it.

I volunteered to help run the SQL PASS desk, along with Sarah Strate (blog | twitter) and Jason Strate (blog | twitter), I helped out with lasertag. I helped organize the vendors end of day give-aways. I ran various errands. I learned from experts. I networked with friends and new friends. I discussed stuff with vendors. I made a great connection that may be monetarily profitable. I had a blast.

After the event we all retired to dinner at a nearby hotel. Some more final shmoozing and networking. Some great food. Great friends. Good times. I ended up leaving a bit early and heading over to another location with Red-Gaters Annabel Bradford (twitter), Max and Grant Fritchey (blog | twitter). Along with Tim Ford (blog | twitter). After some great food and talk, I retired early to visit with my brother and family again. I only had 1 more night in Colorado and wanted to spend as much time with them as I had with my SQL People.

The next day I flew home to Utah, after having spent the morning playing cork pop gun wars, shooting BB guns, tag with the kids and the dog, building a fire in the family room, taking pictures with the kids, making scrambled eggs, eating an incredible coffee cake, and a great talk with my bro about growing up and being a dad and all that that entails.

As usual, throwing myself into these events, and using as much time as possible to network, learn, and enjoy made for an incredible weekend. Its so full, so much fun, so quick, yet so full.

SQL Saturday. When are you attending your first? or your next? I can't wait for my next. I hope to see you there!

Tuesday, December 13, 2011

How long will this backup take?

It's a Friday afternoon. You just did an oops and need to fix it. You think you need a backup. You know you need a backup, before you do anything. You quickly kick off a backup job and let it start performing the backup. Now, you know that this job has executed in the past, daily, probably. You can check the history of the job and get an idea of how long it will take.

The last execution was 1:10. A previous execution completed in :45. So you can safely guess that you are in for at least an hour of wait time before completion. This displeases you as you realize that it is already 3:30pm, on a Friday. The backup is already going, so it's a waiting game at this point. Wait, wait, wait.

Your boss suggested that you take off and get some away time, knowing that once the backup completes that there will be a hectic time performing the needed tasks to fix the oops. You consider leaving, after all, the backup will be running for an hour or so... Maybe sooner, maybe longer.

Since this isn't a backup from the UI, you do not have the handy dandy percentage showing up in the corner of the screen, giving you an idea for how long it may take. All you have is a small window saying that the job started, and the spiny guy showing you it's still going. And will complete. At some point.

So, how long will it really take? Only a time machine will truly tell you. But we can make logical guesses. A quick few clicks in Google/Bing would show you several scripts that could help. Here is the one that I found.

SELECT
CONVERT(NVARCHAR(60),DB_NAME(database_id)) AS [database],
CASE command
WHEN 'BACKUP DATABASE' THEN 'DB'
WHEN 'RESTORE DATABASE' THEN 'RESTORE'
ELSE 'LOG BACKUP'
END AS [type],
start_time AS [started],
DATEADD(mi,estimated_completion_time/60000,GETDATE()) AS [finishing],
DATEDIFF(mi, start_time, (DATEADD(mi,estimated_completion_time/60000,GETDATE()))) - wait_time/60000 AS [mins left],
DATEDIFF(mi, start_time, (DATEADD(mi,estimated_completion_time/60000,GETDATE()))) AS [total wait mins (est)],
CONVERT(VARCHAR(5),CAST((percent_complete) AS DECIMAL (4,1))) AS [% complete],
GETDATE() AS [current time]
FROM sys.dm_exec_requests
WHERE command IN ('BACKUP DATABASE','BACKUP LOG','RESTORE DATABASE')


It simply queries the dm_exec_requests and looks for items that indicate a backup. The other fields will massage the resultant data into something that you can use to see how long it may take.

Once I executed this, I was sad, because it showed me over 2 hours to complete. The sad was the duration was longer than I had hoped. The good was that I now had a goal. A time when other tasks would start, after the backup completed. This allowed me a better chance to plan and prepare for those tasks.

Friday, December 09, 2011

Habit and Perception

The other day I took a shower. I do this when I intend on meeting other humans during the day, and this was to be a day of meeting other humans, so a shower was necessary. When the shower was complete I grabbed my handy dandy bath towel and proceeded to dry off. However, this time, the towel had a tang to it, an oldness, an odor... This has happened to me before in the past, and I am not properly equipped to deal with this situation. You see the bath towel is a bit of a mystery to me. Its simply there for my use. And for a while it will remain there, a blue towel, hanging where I expect it to hang, standing at the ready. Then one day it will change to another colored towel. This towel is also a bath towel and serves the same purpose, and by all accounts in my mind, is the same towel, simply different. I often wonder where the blue one went. But I end up seeing it again, some other day. They come and go from my use with a similar mystery as other items in my life that vanish, only to appear later where I originally found them. It sure makes life exciting to not understand it all, to live and witness such magical behavior.

So, there I stand with my smelly bath towel, wondering what to do. The magic task of switching towels is so magical, I was not sure where to start. Where to look. Where to go. I secretly hoped that if I closed my eyes the magic towel switched to the new one, solving my problem. I was alone. No one I could ask. No help to be received. I was alone.

As I wondered around the room and adjoining rooms, searching for a towel, I walked past 2 towels that were guarding the corner of the bedroom. 1 towel was from a work we had this past summer. It was a nice blue hue with a company logo on the corner. It was fairly new. The other was from a racquetball tournament. The first was given at a pool party event, while the latter was given during a tourney. Both seemed to have a specific purpose. And neither of those purposed seemed to be for post shower use. I dismissed them. They were not the intended targets. I needed a bath towel. I never thought of using them.

As I wondered around the adjoining rooms and storage areas, I encountered a fair share of similar items, but no true bath towel. I could not seem to decipher the runes indicating the direction and storage of these magical devices. Their purpose understood, yet their hiding place eluded me. I returned to the bedroom disappointed in my efforts and more so with their result. It was then that my eye was drawn to the 2 other items, similar to the elusive magical bath towel. Could I use either one of these objects? One was intended to live in a gym bag and dry my body after a shower from a work out. That was fairly similar to my morning bath. The other was used to dry me after a pool adventure from a work party. Also intended to be a drying device.

By golly, I think I had a bold, new, and exciting idea. I could use one of these items to complete the task I had at hand. Maybe they were not intended for this exact purpose, but they could do in a pinch. They would suffice. They would server the purpose and actually accomplish the goal. My morning wasn't actually in ruins anymore. Life could proceed, tasks could be completed, and so on. Yeah.

(Yes, I have fun writing up these little dramas, these little glimpses into the brains attempt at making entertainment of the simple, the mundane, the commonplace. I enjoy the dichotomy of a few moments of thought elongated into a tale that seemingly takes much longer to complete.)

What's the point of this little tale? Its about my perception. My habits. I had fallen into a habit of waiting for someone else to take care of my bath towel situation. I had the perception that the other towels in this tale were not intended as bath towels, as I needed. How often do we do this in our work? How often do we forgo a solution that is compatible, only because it is not the solution we expect to be the correct one?

Do we only use sp_who to diagnose an issue? Why didn't we use the DMVs? Did we use the DMVs when an sp_who or sp_who2 would have sufficed?

Do we open up a profiler session and monitor our production boxes instead of crafting a trace that will do this more nimbly, with less impact? And should we use the DMVs to dig into what we are looking for and skip the profiler and the trace all together?

Do you excuse an error that you see because you have seen it over and over and over, and believe that you have a grasp on what it means, why it occurs, and simply do not deem it worth your while?

Does the report run quick enough that no one is complaining, and why should you deal with it now? It works fine, doesn't it?

There are probably more questions I could ask. I hope that you are actually thinking of your own situations now. Those items that you have taken as habit, or have carefully crafted a perception that you can accept, be it correct or erroneous.

Take a step back. Look at the situation. Is this a habit, a bad habit? Should you do this differently? Look at how you perceive the situation. Is your perception jaded, twisted, erroneous?

If so, please have the courage to take the time to remediate the situation. Fix it. Make it better. Make it faster. Do it the right way. Investigate what the right way is.

Friday, December 02, 2011

Putting on my first Pre-Con for #SQLSat104

While at PASS 2011 I had the inspiration to discuss the possibility of combining my speaking efforts with those of Chris Shaw (blog | twitter) on utility databases. I have been speaking for a while in various venues and most of the topics I have covered seem to float around this idea of utilities that help me as a DBA perform my day to day job, with an emphasis on monitoring, collecting baseline information and reporting on said information. You can check out some of the past presentations I have done in this blog post.

I have seen Chris present on Utility Databases and was impressed at his approach and solution to the problems he has faced. I approached him and discussed us speaking together, combining our efforts (read:climbing on his coat tails and enjoying the ride). He was positive in the receipt of the idea. Various discussions have ensued since that day.

We have created, what we think, will be an enjoyable day of sharing of our experiences, actual code, actual data, actual demos and actual templates that you can use in your organization to solve some of the problems we all face as DBAs. There is no right or wrong way to perform these steps, and every implementation will vary based on your knowledge, skill, time and need. But these ideas will be things we have done, are doing, and continue to do to support our own organizations. We hope that they will help you out in yours as well.

Expanding on the idea of a Utility Database, we want to help you create a Utility Belt with tools you can use. Think of it like the Utility Belt that Batman wears. I would imagine there are some great gadgets in that belt that help in various situations. We hope to populate your Utility Belt with some of the tools we have learned and love to use ourselves.


We will start the day with some list of tasks to perform daily/weekly/monthly. Hoping that these ideas will get your brain juices flowing and thinking of how they may be implemented in your shop. We will discuss Chris's Utility Database, my Data File Size collection and reporting system, new techniques with SQL Server 2012 features, and even delve into documentation (a much needed, yet much ignored topic).

It's my hope that you will come away from this day long discussion with some tools that you can take home with you and use in your shop. Take them, tweak them, mash them into your square peg hole and make them work for you, just like Chris and I have done to gain this knowledge ourselves. We all end up learning from each other, sharing with each other and helping each other. Together we can make our jobs and our own effectiveness that much better.

Come see us. Come learn from us. Come share your experiences with us and teach us as well.

Homepage for the SQL Saturday Colorado Springs event is found here.

Homepage for the pre-con we are putting on can be found here.