Thursday, February 2, 2012

Thank You & Goodbye Publix

It's been a little quite here at Dear Reader, but business is about to pick up.  There are a lot of changes in store for this year.  The very first of which is that Friday February 3rd 2012 will be my last day working for Publix.  Working for Publix has been a tremendous opportunity for me, and I have grown professionally in ways I never dreamed of.  When I left Virginia for Florida Publix was the company I wanted to join.  I knew of them, but not a lot about them.  The more I learned about them, the more I would come to love them as a company.

“So Balls”, you say, “Where are you going?”

That Dear Reader is an excellent question.  And one that we will address tomorrow.  For today I wanted to take a moment to say Thank You to Publix. 


Publix is a Fortune 500 Company in size and in Capacity, it has been in the Fortune 100 Top Places to Work for 15 years in a row.  The concept is simple one.

Back in the early 1900’s a Man named George Jenkins was the youngest manager in Piggly Wiggly History at the time.  He was quite successful.  So successful that the President of Piggly Wiggly had told George that if he had any idea’s he could drive up to Atlanta and share them.  George was a man full of ideas and he set out on a trip to discuss how they could revolutionize the grocery store business.  In those times it took 2 days to travel by car from Fl to Atlanta GA.

When George arrived he sat waiting outside of the President’s office.  He saw men in suits enter and over heard some of the conversation.  At that point the President’s Secretary walked over to George and said that, They were too busy to meet with him that day, and he should just drive back down to Tampa and come back some other time.

The conversation that George had overheard was about the Golf scores they had shot the previous day, and the course they were planning on going to that day.  Needless to say the 2 day drive back down to Florida proved fruitful for George, but not for Piggly Wiggly.  George decided that he wanted a place where every Customer and every Employee would be valued above all else.  That the cost of doing business would not come at the cost of serving the customer or employees.  George quit Piggly Wiggly and went on to found Publix.

True to his word the very first year that Publix was opened the company ran into the red.  The reason it lost money that year?  From the very first day George issued stock in the company to every employee, and paid a dividend per share.  Goerge felt that if you own something you would put more work into it, and from the bag boy up to the owner he wanted everyone to feel pride in their business.  That continues to this day.  Publix is the largest Employee owned company in the United States.  As a matter of fact the only way to get Publix stock is to work for Publix.

When you start with Why great things happen, go watch Simon Sineck if you don’t believe me.  Why, George believed that by Serving people and his Employees that everyone would benefit one another.  How, he would make that the standard and offer Premier Customer service.  What, George just happened to open a grocery store, that went on to become a multi-billion dollar company, dedicated to this day to become the “Premier Grocery Store” in the world. 

Publix was founded during the Depression, at a time when new business shouldn’t succeed.  When many established businesses went under.  George used to get a ride to work with his butcher because instead of buying a car, he spent his money on a delivery truck for his store.  He was at every opening of every Publix when he was alive.  And there are pictures of him bagging groceries and walking customers out to their cars to load them.  The week he died, he had stopped in old store #1 like he did most weeks.  To say hi and see how things were running.  If you live in South Carolina, Tennessee, Georgia, Alabama, or Florida you will be able to find a Publix.  I would highly recommend that you stop by and see what George built for yourself.


I don’t care how many times I’ve said it, or how many times you hear it The People make a difference in where you work.  At Publix I have worked with some of the smartest and most dedicated people I have ever met.  It is a very common thing at Publix to run into someone who has been with the company over 30 years.   There are many who still remember the founder of Publix, Mr. George, affectionately and share stories of him.

One of Publix motto’s is “The People Make the Difference”.  And it could not be more true.  Whether it be the individual at a store level that goes the extra mile, the people from Corporate and Manufacturing that load up their own trucks to get supplies to Stores and Customers affected by hurricanes, or the many late nights that the IT staff put in to see that the Store Systems that make the Customer experience so seamless continues to keep working.  It is the people.  The People that work at Publix tirelessly devote their time to charitable efforts without looking for glory or recognition.  Their work with the United Way and in sponsoring children and families during Christmas are two that leap to mind immediately.  But you don’t have to look much further to find men and women that are active members of their Churches, Volunteers for Boy & Girl Scouts, Board Members of State Colleges, and servants of many other fine organizations.

But that is a big body of people.  I worked on the DBA team, specifically on the SQL DBA Team.  The men I worked with are some of the finest DBA’s I’ve ever worked with.  I learn constantly with them, and they have no shortage with which to teach.  When you manage over +3000 SQL Server Instances (Almost 4000) you have to be at the top of your game, or things go wrong. 

I could write a profile on each member of the team and offer glowing reviews and recommendations based on their knowledge of Internals, Optimization, Troubleshooting and Performance Tuning, High Availability and Disaster Recovery.  They are people that I have learned from, gained amazing insights into managing SQL Server, received amazing Scripts from, they even helped me move!, and I had many  wonderful personal conversations with.  Needless to say I look forward to keeping in touch with them, because they are amazing individuals that I hope will be life long friends.

Thank You

So I want to take a brief moment to say Thank You.  Thank You to all the people I’ve worked with.  To the DBA’s that I spent late night’s and weekends with Thank You.  To the Analyst, Programmers, Data Analysts, and Managers Thank You.  To the co-workers that encouraged me to speak at events, sat in them, and offered me constructive criticism Thank You.  I am better for having worked with you and I wish you all nothing but the best.


So now Dear Reader I would like to say to you, Publix will be hiring in the near future.  As you can tell from my glowing review, I think this is a wonderful place.  An opportunity has arisen that I just cannot pass up, and that spells Opportunity, What Opportunity are you looking for, for you. 

Here is the link to the job posting on the Publix Website, click Here.  Good luck to you if you decide to  apply.  And Thank You Again Publix.



Wednesday, January 25, 2012

Nothing Changes If You Don't Volunteer


Hello Dear Reader, last time on Day's of Our Lives there was an election, some people resigned, and other's were appointed.  Let's join this already in progress.  So it appears that the 2011 PASS Board Elections did not go quite as smooth and un-controversial as this old friendly neighborhood DBA would have liked.

"So Balls," you say, "What's going on?"

Good Question Dear Reader, I'm glad you asked.  Brent Ozar(@BrentO | Blog) has already done a good job of cataloguing not only his comments but just about everyone else's so far, read here PASS Board Brouhaha BS Bulletin.  Now this election season I tossed my hat in the ring to participate in the NomCom, I'm on the NomCom What's a NomCom, so I feel a little more personally vested this time around.


Going into the job I had read about the previous year's controversy.  I wanted to know what I was getting into, I also wanted to make sure that the Community first and foremost got a fair shake.  I've had the opportunity to do some very cool things this past year.  And hopefully I'll get some more chances to do even more.  But I'm not so inundated into the PASS nomenklatura that I consider myself an insider.  Most the time I feel like Tim Drake that just tricked Batman into letting me into the Bat Cave.

Two Years Ago if you had asked me who ran the PASS board, that was responsible for the PASS Summit, I would have told you that it was in some Super Secret fort up in Redmond where Paul Randal, Andy Warren, Steve Jones, Brent Ozar, and Kimberly Tripp sat around with secret decoder rings solving the world's problems with the help of Microsoft's finest. 

So when I submitted to be on the NomCom I did not expect to get on.  People were supposed to submit, and then there would be an election to fill the 3 Community slots to give the Community-at-Large the majority seats on the Committie.  Instead of that, only 3 people submitted and we were appointed to the slots.

I want that to sink in for a moment, ONLY 3 PEOPLE SUBMITTED.  Not in a bad way, but in a OMG I COULD HAVE DONE THIS, kind of way.  If you had any opinion on this election, you could have participated.  Seriously.  The time commitments were there, but they were not nearly what I was expecting.

Very early in the NomCom process Thomas Larock (@SQLRockStar | Blog) said something that stuck with me the entire time.  "We are not here to eliminate anyone.  Our job is to put forward the best slate of candidates for the community to decide upon."  I knew we were there to trim the slate if needed.  I wasn't sure how this would be achieved yet, but I never forgot that.  We were not there to decide but to make sure that the community could decide. 

When it came to the candidates we were told that at most we could present a slate of 12.  6 applied.  Once again I would like that to sink in.  ONLY 6 APPLIED.  There was no secondary International Candidates to choose from, there was no one eliminated.  As a matter of fact we could have accepted more candidates if anyone had applied.

At that point our job consisted of vetting the candidates to see that each would be able to fulfill the duties of a PASS Board Member, and to rank them and present them to the Board.  The Board approved the slate and our job was done.


Just to clear a couple things up, I like Brent.  I think he's swell.  As do I Tom Larock, Sri Sridharan, Kendal Van Dyke, Geoff Hiten, Bill Graziano, and I would probably like JRJ even though I haven't' met him.

Brent reminds me of  one part Stephen Colbert another part Intrepid reporter.  He would probably win an election in a LANDSLIDE, (in South Carolina), but his schtick isn't something that lends itself to stuffy board rooms.  

I could be wrong, I'd love to see Brent on the Board.  But let's face it, the man knows what he wants to do in the SQL world.  Sitting on the PASS Board isn't one of those things, or Brent would already be on it.  But just like Stephen Colbert we need to know when we look like @$$holes, and he is the guy that is willing to call us on it. 

I feel for Sri.  Sri I think that you campaigned just as hard as, and harder than most people out there.  The effort you put into your campaign really impressed me.  You have done a lot of amazing things down in the great Republic of Texas, and SQL Rally is going to be an amazing event.  I hope you do not lose heart in the community. 

In the days before personal computers when we just had telephones to talk over I remember my Dad once telling me that people were a lot braver over the Phone than they were in person.  When I asked what he meant by that he told me that, "People would say things over the phone that in person would get them punched, and if they were brave they wouldn't bother with the phone call." 

I think that as adults we have to recognize that Sometimes we have arguments,  Sometimes we shout when we should listen, Sometimes we say things that we regret, and Sometimes we wish that no one was around to see the whole sordid mess.  Sometimes you let these things pass because nobody wins, if you just keep tossing mud.  I know I'm guilty of that, and I would bet I'm not alone.

We had 6 fabulous candidates.  3 won.  1 was appointed.  Everybody said if any of these 6 get elected we are all winners.  Well congratulations, we got 4 out of 6.  Not bad.  Not bad at all.


Sure I think that JRJ would have made a great 7th candidate, sure I wish that as part of the NomCom we would have had a chance to examine him as we did the other candidates.  But I know from what I'm reading he is like so many others in the SQL Community.  Great.  Passionate.  Dedicated.

So next year I'll volunteer.  And if I ever feel I'm up for serving on the PASS Board I'll run.  In the meantime I'll work with my local chapter.  I'll help with the next SQL Saturday Orlando.  I'll speak at any event and User Group that will have me.

But more importantly you should too Dear Reader!  Because the only thing that we the SQL community love more than a little Brouhaha is Volunteers. And you will be welcomed with open arms. And who knows maybe next year I'll read about you on the NomCom, or vote for you when your running for the PASS Board.  A journey of 1,000 miles begins with just one step.

Thanks Again,


Tuesday, December 6, 2011

You Should Never Use Backup Log Truncate_Only Except...
I want to start this blog out with a Warning Dear Reader.  The technique that I am going to describe to you today is how to use Truncate_Only to NUKE your transaction log.  This is a topic that a quick search on will find you this Blog by Brent Ozar(@BrentO| Blog) and this MSDN forum conversation that has a link to a Paul Randal (@PaulRandal | Blog) Blog on why you should not use this as well.

"So Balls", you say, "Why are you blogging about something we should not use?"

Great question Dear Reader, the answer lies in the details.   With the one place that I would say this is okay to use.

So let's start off first on why this is bad, so you will understand that you should use this with caution.  Your Transaction log is an essential part of your database.  This is an understatement.   This is like saying your Brain is an important part of your body. 

You cannot operate without it.  Period.  It remembers everything that you have done in your life, Transactions that have been committed and flushed to disk for the Database.  If you get knocked out when you wake up you start piecing what you did and how you got there.  In the database work we call this Recovery.

You cannot recover your database if your transaction log is gone, the database won't start up.   Not only that if you have a very important database, you cannot loose any of the transactions that you commit, ie you need to remember everything.   If you have a pharmacy database that track prescriptions, a bank database that tracks customer deposits, or a hospital database that tracks what was given to a patient and when.   You cannot lose any of that information. 

When your database is this important it SHOULD be in Full Recovery Model and we should be backing up our transaction logs in accordance with our Service Level Agreements, SLA's,  in order to meet our Recovery Time Objective, RTO.   If you use the command I will speak about in a moment on a Fully logged database it will wipe out your Transaction Log, good bye memories.  The structure will still be there, but this will make it to where you lose your ability to recover to a point in time.


"So Balls", you say, "What's a Checkpoint and what in the SQL Internals does it have to do with my database?"

Great question Dear Reader, man you are on top of your game today!  A checkpoint is a process that flushes Dirty pages from the buffer pool to the disk.   Sticking with the biology terms it takes what your eyes are seeing and flushes it to your brain to make, commit, the memory.

In SQL 2000 there was a known issue where occasionally the checkpoint process would go to sleep.  So why is this a bad thing?  Well your transaction log tracks the transactions that are flushed to disk, and when checkpoint went to sleep the transaction log would continue to grow and fill.

In a situation like this what should you do?  Simple open up Query Analyzer or SSMS and simple go to the database in question and type "Checkpoint".  That simple.  Checkpoint the database, execute a DBCC SQLPERF(LOGSPACE) and examine the free space for your database log to see that you now have plenty of room.


So when should you use the unspeakable command that I'm speaking of? 

You get a call for a server, it just so happens to be a SQL 2000 server on SP 4 (awe hotfix or security patch that takes you up to build (8.0.2055 i've seen it in both).  You've gotten reports that the TempDB has run out of log space.

You log in when you type:
USE tempdb

You get an error stating that a Checkpoint could not be committed because the transaction log was full.  At this point you have queries that are failing because tempDB is used, ALOT.  In order by, sort, and group by queries.  By Queries that need temp tables, variable tables, and work space tables.

Your only option at this point would be to restart your instance.  Why restart your instance because TempDB is destroyed and Re-Created each time your instance is restarted.

So before you do that, what can you do?  You can execute the following command.  Again only on a database where you do not care AT ALL about the transactional consistency of the database log.  Also you want your database to be in Simple Recovery Model by default.  And you are on a critical SYSTEM DATABASE that is destroyed and recreated on each restart.  Before you take an outage of your system try this.
Backup Log Tempdb with truncate_only

This command was depriceated in SQL 2005 and is not there in SQL 2008.  There is a work around, but I'm not posting the work around for SQL 2008.  Why because in my humble opinion Dear Reader you would only want to do this when the checkpoint has gone to sleep in the tempdb.  While I have see this A LOT in 2000.  I have yet to see it in 2008 and above.

So once again, be cautious and my recommendation is to only ever use this as a last ditch method of freeing up TempDB space as a means to avoid a reboot.