Behind Door #1 is: SQLMemorial – A Tribute to the Fallen in the SQLFamily


This is a post for T-SQL Tuesday #99 Dealer’s Choice. #TSQL2sday was created by Adam Machanic. It is being hosted by Aaron Bertrand – Thanks Aaron!

On a somber note, I present SQLMemorial. For a short overview video, one can view it here. Names of folks are below.


One of our members recently passed away: Tom Roush. While his celebration of life service was going on last Saturday in Seattle, I wasn’t able to attend but I was working on building SQLMemorial back home in Colorado. People handle dealing with grief in different ways. At times for me I build stuff to honor the memory of someone. Tom was a storyteller and virtual reality (VR) is becoming a new and unique storytelling medium. So I dusted off an old idea and jumped into it full force in my spare time after this TSQL Tuesday topic was announced. My last conversation with him was about getting stories out of your head, even and sometimes especially the embarrassing ones. Even if you never publish them, get them documented. For me I will be doing this in the future using my drive time to record audio- a drivecast.


I am into VR and I am fascinated by what it can do to help people in a non-gaming context. Unreal Engine has been my video game engine of choice- currently using version 4.18.3

When I announced on Facebook a while back that I was building a VR experience using pictures to help distract people in pain in a drug-free way, one of the people who expressed interest in it was Tom. The cost of the software, a GearVR headset, bluetooth controller and an unlocked Samsung S6 or higher phone was just too expensive- over $1000. Now with Oculus Go coming out for only $200 and just around the corner, all of my software has an upgrade path. Yay! So I think things are going to pick up on that front in a big way. Sadly, Tom passed before I had a chance to build something just for him.

At the PASS Summit in 2016 I participated in my second Speaker Idol and I showed everyone a small glimmer of a VR walk-through. Hard to do in five minutes BTW. Part of it was a type of Hall of Heroes, a short roll-call of those SQL Family members who have died. I have tried to keep track by using the twitter hashtag #SQLMemorial 

Present Day

So on my own as a one-person slightly dangerous VR game developer, I attacked this TSQL Tuesday topic as a game jam. Scale back the scope, scale back the scope again, and focus on the most important thing in both video game and software- SHIP! The goal for me was to build and deliver something that works. I got permission from a variety of folks  to use their pictures. Special thanks go out to: Argenis Fernandez, Jimmy May, Andy Leonard, Grant Fritchey, Mickey Stuewe, Julie Koesmarno and Tom’s daughter Alyssa, and Hawaii News Now for use of their pictures. Jim Gray’s attribution.

It is mainly dedicated to Tom but other people’s pictures of the fallen includes Jim Gray, Ken Henderson, Bob Rumburg, Alan Weber, Larry Toothman, Mike Wilmot and finally Tom Roush.

Please note this DOES work even if you do not have a VR headset to use with it.


PC gamers you can skip this, except the next paragraph. Keyboard keys: WASD (W and S are forward and back. S and D are walk like a crab left and walk like a crab right). Arrow keys (up and down are like W and S, left pivots you in place as does right arrow). Mouse moves your head to look up and down.

To end the experience, type the ~ (tilde key) just under the Esc key. Esc does NOT work. You will see a small console line open up at the bottom. Type the word exit then hit return. If that opens under the taskbar or something and you can’t see it, then you’ll need to open Task Manager and kill the process. Extreme yes but user menus is on my list of things left to do.

Immersive VR Use

On my Oculus Rift I use the Windows Xbox controller and it works fine. On GearVR I have a bluetooth gamepad controller. If you have a GearVR and want SQLMemorial on it, I will need to compile a version specific to your phone. It will require you to give me your Oculus Signature File. Instructions can be found here. You can contact me via todd dot kleinhans at gmail dot com.

UPDATE (13Feb18) I became aware that the background sound is not playing on the Rift. My first bug to fix! It is odd as I hear sound when I play it using the VR Preview mode from within the game editor using the Rift and it plays fine on the GearVR deployed version. Go figure.


I offer this software AS-IS, no warranties expressed or implied. It is an .exe file so if you are super paranoid then my advice is don’t install it on a machine you can’t risk screwing up. Seriously though, I personally have never had a problem with Unreal Engine running on any of my machines including those I use for SQL presentations.

It has been tested on a five year old Windows 7 laptop and on a Macbook Pro running VMWare Fusion with a Windows 10 Enterprise (90 day eval) virtual machine. If you are using a virtual machine, be sure in install the VMWare tools as it will update the video driver to enable this to work. I had to do that on mine.

This is hosted on my OneDrive so it might take a while to download (5min for me) at 275Mb.


Click Download. Unzip the SQLMemorial file. Open that folder and unzip the file. Open the WindowsNoEditor folder. Open the other WindowsNoEditor folder. Right click to launch as administrator on the SQLMemorial.exe to start the experience. It will take a few seconds to open. Once it does and on the first time, it will attempt to install the .NET framework it needs if it is missing in addition to Visual Studio C++ runtime. You have to agree to the Unreal Engine software terms. I’ve tried to keep the ambient sound to a background level without being too distracting so might need to turn your volume up or put on headphones. Best experienced w/o too much light in the room.


I still have a list of enhancements for the next iteration. For example, I have tested adding audio clips of short messages in .WAV files and it works fine. Navigation beyond game pad controllers. VR style navigation locomotion. Media playback control. User menus. And then setting up a dropbox to collect more content from people who would like to add more pictures and sound. Maybe video links too as embedding video files bloats the size. Cloud based hosting like Sumerian

I’ll be updating this post so don’t freak out if you re-read this and see different things. I also want to do another blog post on the technical aspects of what it took to create SQLMemorial.

Looking at all of the pictures and reading some of the stories and building this with misty eyes was hard. The fallen will be missed but not forgotten.

I really want your feedback on this project so feel free to hit me up on twitter: @toddkleinhans


Posted in Uncategorized | Leave a comment

T-SQL Tuesday #98 – How I Learned to Stop Worrying and Love the Bomb


This is a post for T-SQL Tuesday #98 and it is about a time when you faced a technical challenge that you overcame- for me this is a story about database corruption. #TSQL2sday was created by Adam Machanic. It is being hosted by Arun Sirpal – Thanks Arun!

One of my favorite movies of all time is Dr. Strangelove Or: How I Learned to Stop Worrying and Love the Bomb. It is a dark comedy. A crazy General exploits a limitation in a nuclear attack plan and issues orders for his bombers to execute “Wing Attack Plan R”. Not to be confused with “Wing Attack Plan Python“, ha. It starts a sequence of events which should have never have happened with fail-safes, human in the loop systems, recall of bombers, arming systems- but some nuclear bombs on one lone bomber were on their way to getting dropped and thus starting a nuclear war of epic scale. And I love Stanley Kubrick films too.

Despite current rhetoric to the contrary, the POTUS does NOT have a button to push to launch nuclear weapons. He can order their use but he doesn’t have a big red button on his desk to bang away on like an arcade-style video game.


I am no longer with the company who hired me for this client and the client company closed the main office which I used to work at here in Colorado. ALL of the consultants, managers, directors and other employees I worked with and knew are also no longer with this company.

It was a strange situation. I have too many stories, Good, Bad, Ugly and Fugly about this client. I was with them for several months. They had been through many full-time employees as database administrators and they also had a large developer team out in California. The company was bleeding money and filing for bankruptcy. In the consulting business, sunsets can be long and yes there is money to be made riding out into the sunset. Eliminating pain is attractive to investors. Another competitor was in the similar state of affairs and they decided to merge the two bankrupt companies together as one. When I was there, people were leaving on their own as it is easier to find a job when you still have a job than if one waits until layoffs or firings occur. I did some quick research for this post and found out that in May of 2016, they filed for their THIRD bankruptcy in seven years and their stock is no longer publicly traded- it is a private company. If you were the CEO, how would you attract the best and the brightest to come work for you in a dying industry? Hm.

How To Save Money – Get Rid of Temps, Vendors and Consultants

Yes you read that right. And so the story begins. I was brought in for performance tuning, disaster recovery, migrations and general database administration work. The main project was to migrate a single SQL2005 mission-critical instance to SQL2012 and all that it offered including failover clustering and Availability Groups (AG). Off-loading reports to the AG was going to be yuge as well as all of those jacked up ad-hoc queries Business Intelligence and Sales people like to run against up-to-the-second production database stuff. NOT hitting the main Production instance was going to make MANY executives extremely happy provided of course their queries used existing indexes. But I digress…

One of the cost-cutting measures was getting rid of another consulting company which performed many tasks including managing a messaging system that had a SQL2008 backend. They were also in the midst of migrating that system from on-prem to the cloud.

So I got pulled into a meeting and was told I was now responsible for system XYZ. No documentation, no hand-off, just here is the server name and go manage it. They were also using software to perform the migration and they were not going to spend another dime with that software vendor as it had gotten ugly with them financially.

I did a quick sanity check and look-see. Under-powered and running on an old server with 8GB of RAM hosting three instances and the messaging system migration was using the instance with a ~2TB database on it. Disk storage was on an old HP SAN. Average CPU load was in the high 70’s. SQL 2008 Standard Edition and no backup compression software either. Very few SQL jobs, just indexing and backups. No jobs to run CHECKDB and no SQL Alerts either…

Mr. Murphy Walks In Monday Waving Wing Attack Plan R

I respect Murphy’s Law but if I ever meet him in person, I might be compelled to beat him. Repeatedly, if necessary. No, I don’t have advanced alien weapons like these but sometimes I wish I did (contains foul language, NSFW): The Doctor is gonna bust a cap in yo ass

With limited disk space for backups and with management unwilling to spend money on backup compression software like we were using on the main system I was brought on to migrate, the previous consulting company had to make due with what they had and what I had just now inherited. Which was: full database backup to a share on Monday, Wednesday, Friday and Sunday. Backup to a different share on Tuesday, Thursday and Saturday. And then there was a job to delete the previous two backups for each share. I was told verbally by management that they had these contractual database backup requirements. And that if I wanted to change things, I had to prove that they worked before implementing them. But they didn’t have a dev/qa/uat/test system and what was worse, they didn’t have ANY disk space to even test a restore on. So I could not implement something like a once a week full, differential every day, and transaction log backups running on a 15 minute basis. NOTE!!! You need a restore strategy, not a blind backup strategy. So they had never tested a backup restore of the 2TB database due to lack of disk space.

First thing Monday morning someone from the messaging team asks me to look at the database as it looks like their on-prem to cloud migration process suddenly slowed WAY down over the weekend.

I login, launch SSMS and my heart sank. All of the SQL Logs showed today’s date on them. Not a good sign. I open the most recent one and saw Stack Dump on Page ID X. And Y. And many more. Log said data loss can occur and to run DBCC CHECKDB immediately. We had a meeting and after looking at msdb.dbo.suspect_pages table, I knew the system was in trouble. Management was HESITANT TO OPEN A TICKET WITH MICROSOFT BECAUSE THAT WOULD COST MONEY! I knew my consulting hourly rate and just shook my head. Instead of calling for help right away they wanted me to mess around with it for hours and/or days. I still pressed to open a ticket because I was rightfully nervous about the backups.

Guess what? I determined the corruption happened sometime Saturday. But did we have a backup from last Friday? Nope- because there was a job to delete the previous two days’ backups. So I was unable to restore a backup. The backups from Saturday and Sunday contained the corruption so they were not going to sadly be of use.

The Bomber Will Always Get Through

This was serious. I had just inherited a system that shortly went belly up and they were looking at me to not panic, fix it, and move on. I had dealt with database corruption before but never this bad. I called other consultants on my team, reached out to others, and began wielding my Google-Fu skills. In the meantime the storage team ran diagnostics on the SAN and couldn’t find anything wrong and no changes had been made.

Here was the scope of the problem. Not all corrupted pages were listed in the SQL log or were listed in msdb.dbo.suspect_pages. DBCC CHECKDB would itself issue a stack dump when it encountered the first of many corrupted pages.  Same for running WITH REPAIR_REBUILD. Consulted with management again about data loss and if running CHECKDB WITH REPAIR_ALLOW_DATA_LOSS would be acceptable. Got the go-ahead but no joy.

I could re-produce the stack dump by running a SELECT command and giving it a specific value for a clustered index on the largest table. Corruption appeared to be isolated to just this one table. Also, intentionally making a system do a stack dump is not a good idea either as I found out that if I did that repeatedly sometimes the instance would re-start itself too… I had to figure out how to 1) save the data 2) see if its possible to save the corrupted data and 3) get rid of the database corruption.

Kalen Delaney  and Paul Randal To The Rescue!!!

Well, not exactly but I did have the awesome SQL Server 2008 Internals book written by her and many other smart people including Paul. Signed copy even!  So here are the challenges. How do you write scripts to pull out the good data into another new table without causing a stack dump? And don’t do anything that isn’t Microsoft supported.

First thing I did was test the clustered index ranges. I learned SQL Server does NOT keep sequential Page IDs with a table. Meaning I somehow needed to find all of the Page IDs belonging to a table. Because by using DBCC PAGE I could “see” the clustered ID I could then run a SELECT and insert that row data into a new table. So I made a script to run through all the pages and figure out which ones were bad. From Kalen’s book to all of the posts by Paul Randal on I was able to migrate as much data as I could. We ended up loosing about 20,000 rows out of 10’s of millions.

In Rides Cowboy Matt Dillon

My pleas to upper management were finally heard and they agreed to let me open a ticket with Microsoft using a manager’s credit card. Microsoft verified I had done all the right things in the right order which was nice to hear. I got an earful about NOT being able to restore from a backup and that we were NOT on the latest Service Pack for SQL2008. It was determined that the overloaded system had probably encountered a memory scribbler problem and had corrupted the metadata of several pages in memory vs on-disk which prevented reading any data from them.

In the end I had exported all the data to a new table, re-named the old, re-named the new table to the old name and re-created all of the non-clustered indexes. Double checked all of the foreign key relationships too. And management relented and I changed the backup schedule as well. Still didn’t have disk space to test a restore, even after all of that 🙂


After I was done at this particular client and successfully migrated that other system from SQL2005 to SQL2012, I took a Pluralsight course by Paul Randal called SQL Server: Advanced Corruption Recovery Techniques. In it, he shows how to take a peak at metadata and also even how to extract data OUT of non-clustered indexes! I wish I had watched this course before I encountered this database corruption. It could have saved me from a lot of pain, stress, and wasting time.

I hope there is NOT a next time for database corruption like this but at some point in your data career you will encounter things way beyond your level of expertise and you will need to figure things out for either your employer or for your client. Thanks again to Kalen Delaney and Paul Randal, some Rockstar authors!

Maj. T.J. “King” Kong: “…Survival kit contents check. In them you’ll find: one forty-five caliber automatic; two boxes of ammunition; four days’ concentrated emergency rations; one drug issue containing antibiotics, morphine, vitamin pills, pep pills, sleeping pills, tranquilizer pills; one miniature combination Russian phrase book and Bible; one hundred dollars in rubles; one hundred dollars in gold; nine packs of chewing gum; one issue of prophylactics; three lipsticks; three pair of nylon stockings.

Shoot, a fella’ could have a pretty good weekend in Vegas with all that stuff.” <- What does YOUR database administrator bug-out bag look like? Hehe.

Inside the Making of Dr. Strangelove

Posted in Uncategorized | 1 Comment

Thoughts and Observations on SQLSaturday Events


Some of this will make sense. Some of this might not. Adapt to change!

“It All Started…”

This post started as something I saw on Twitter on 12/28/17 and then looked at some of the chatter on the #sqlsaturday channel on Slack:

And this is the challenge with multiple social media platforms and electronic communication avenues: one piece of information here, one piece of information over there, direct messages between people outside the conversation, e-mails to others trying to get more information about this rumor or to confirm or deny some official decision, and anything else in between. There has NOT been anything official about this so to use a trite cliche my grandfather would often say,“Don’t get your panties in a bunch”.

My answer to what I see as someone popping off on a theoretical question: “What if SQL Saturday died?”

THAT got a reaction from people. Whether due to budget cuts or whatever, why in the world would PASS not fund or continue SQL Saturdays? Why would someone even speculate on something like that?

To Look Towards the Future, Let’s Look at the Past

(Someone in an official capacity, please update the entry on Wikipedia. This seems old and out of date!):

SQL Server was around before the formation of PASS. So! Marketing dollars to sell SQL Server software was directly from Microsoft. Microsoft did not have the traction it does today in large part due to the entire SQL community especially including PASS. I believe PASS and PASS-branded events have helped make Microsoft a lot of money in the form of intangible goodwill and tangible software license sales in addition to other revenue streams. It has been instrumental in helping the data careers of hundreds of thousands of people around the world, including me.


SQLSaturday started from an idea and became the reality we enjoy today. It is now over eleven years old and as of this post have had over 700 events around the world booked. WOW!


In the original Star Trek 2 The Wrath of Khan, Admiral Kirk once said to Doctor McCoy, “As a physician you of all people should appreciate the danger of re-opening old wounds.” History for history’s sake, SQLRally was envisioned as a regional, smaller event than the PASS Summit. Especially for people outside of the United States, it was a chance to provide a way to have a great event hosted by and attended by regional people. I never had a chance to attend one and I was saddened to hear about it going away. For a synopsis of it, here is a post by SQLAndy

What I love about the SQL community is that they are not afraid to try new things, adjust when necessary and at times let things take their course and even if that means letting things die.

IF SQLSATURDAY EVER DIED- something else would take its place. Personally, I do NOT think that would happen. Here are some of my thoughts on alternatives and ideas for reflection.

Enter Stage Right – The Free Micro Event

The biggest criticism for hosting any kind of large event is cost. Where does the money come from for SQLSaturdays? Typically it has been from sponsors. PASS does not charge membership fees although it sounds like they once did in the distant past. On twitter I had some quick thoughts and one of those which I have re-visited again over the years is what would happen if PASS started to charge membership fees like other professional organizations? How many people would leave PASS and dare I say it? How many would see that as a sign to leave PASS and try to start a competing non-profit or for-profit organization? At what price point would people begin to balk? For me I don’t have a problem investing in my career. I must be getting older as I am beginning to have less and less patience for people who bitch, moan and complain about free events like SQLSaturday. Yes, I said that. I’m curious- how many Microsoft employees regularly attend SQLSaturday events and local user group meetings? Do they NOT think they are getting their money’s worth for Microsoft?

I think free micro events can make it. They already do! Personally I attend many MeetUps a year and most of these have nothing to do with SQL Server. Using free tools like and free venues like public libraries people can host limited attendance training and educational sessions. Note this is a very small event- it is more of a technical gathering on a specific topic. No food or drink. No tokens of appreciation for speakers and presenters. Just a gathering. Sometime we watch and participate in a live webcast from a remote speaker or sponsor. The question becomes is creating it on a regular schedule. Finding champions to run it and get the word out. Having several micro events a year in addition to SQLSaturday is a viable no-cost strategy. But here is the deal-killer: in order to stay within the PASS brand, rules, and use Chapter/User group tools like e-mailing the Chapter membership, it needs to be run by those authorized to use those tools. And this puts an additional burden on the User Group. I will now spell out the flip-side of the Dark Side of that idea too: trying to host non-PASS data-related events which PASS members attend is something frowned upon by many and openly derided by others. Other people simple don’t care where they get their training and education from as long as it is professional and value-added.

Enter Stage Right 2 – The Paid Micro Event

How about a pre-con style event independent of a SQLSaturday event? In either case paid or unpaid speakers can get a chance to deliver and polish their material.

SQLSaturdays and User Groups

I have helped host every single SQLSaturday event here in Denver in various capacities. I have also spoken at many events outside of Denver to get ideas and to see how other people do things. Sponsors are critical but they need to get their money’s worth too. I will reserve my observations and direct experiences on The Good, The Bad, and The Ugly from sponsors for another day but I will say that most of the people who have signature authority to buy their products and services do NOT attend SQLSaturday events. It is usually the people in the trenches who attend these events and may or may not be in a position to buy. Perhaps in the future yes, these people can get promoted and get that signature authority or influence but then that simply becomes a case of sponsors building their own brands. The sponsors who I see getting the best immediate value? Local recruiters. And yes, it does get a little weird when you have more than one recruiting firm at your event.

So far I have not mentioned User Groups. I wanted to limit this post to just SQLSaturdays but I wanted to say a few things some people might not be aware of. Did you know there are some SQLSaturdays run by people which have nothing to do with the local user group? Or people from a different state running a SQLSaturday? Or that some SQLSaturdays are so large they have to outsource key functions? Or that some user groups are so small they sadly will probably never host a SQLSaturday?

Creative Fundraising

When I was a Scoutmaster of a Troop for my son in The Boy Scouts of America, I got insight into both funds and fundraising. I had no idea how much money comes in and goes out for a Troop. From annual dues, camp fees, summer camp fees, other fees, it is a lot of money. Dare I say it? WAY MORE money than a local user group or a SQLSaturday event.

And when your son wanted to attend an event? It had to be paid from their Scout account. Low on funds? Raise money. Popcorn sales, garage sales, community garage sales, delivering phone books, hauling stuff to the dump, etc. Not ashamed to work for money or ask for money.

As data professionals we might be quick to look down on such events as beneath us but I just wanted to ask the question, “What would you be willing to do to help raise money to run your User Group or SQLSaturday event?

Is it something that can be done without having to use a formal Statement of Work or having to sign an NDA, or get security access? What about providing free SQL training to a company in exchange for a reasonable donation?

‘So Long, and Thanks for All the Fish’

I am stepping down as Chapter Leader/President for the Denver SQL Server Group (DSSUG). My term is up and I am not seeking re-election. I have been on the board in some capacity for six years now. There will be some new and familiar faces running the DSSUG board. DSSUG has helped me learn, network, find a few jobs, and grow throughout the years. While I might not be attending as many events as I would like, I still feel part of this GREAT community and will continue to help out as I can. PASS has some new and familiar faces at the helm too and I am looking forward to seeing what is in store for 2018 and beyond. I just don’t see SQLSaturdays going away anytime soon.

Posted in Uncategorized | Leave a comment

T-SQL Tuesday #97 – Setting Learning Goals for 2018


This is a post for T-SQL Tuesday #97 and it is about your learning goals for 2018. I too am a fan of Zig Ziglar and I seem to remember he also said a goal is a dream with a deadline. It is being hosted by Mala aka @sqlmal – Thanks Mala!

And Now, A Blast From the Past

I was doing some Spring cleaning last year and stumbled across this gem I wrote in 1998:

So, let’s revisit some of my past and chat about things before I get into my learning goals for 2018. I did finish my master’s degree but it took longer than I expected and not at the GPA I would have liked.

I was in the U.S. Navy Reserve (USNR) at the time so staying combat ready and ready for deployment was always a priority.

We were living in a house at the time and I wanted to really get into hydroponics as I loved the idea of efficient gardening. Never got around to it and now I live in a house with a draconian homeowner’s association and I can’t have any kind of permanent structures like a greenhouse or a shed in my backyard. But I do have some above ground boxes aka Square foot gardening which come Spring 2018, I might be tempted to get into IoT.

My wife was pregnant at the time with our first child and I took that responsibility to heart. Still working on being a great Dad 🙂

I did start a home-based business in the form of eBay. Made some money but it is a lot of work to do it well enough to make it a full-time job. But I did prove to myself I could do it. We bought three pallets of consumer electronics, mostly customer returns from retail stores, fixed and cleaned and sold them. I had to start traveling more and more and couldn’t keep up so I shut it down. Now with virtual reality (VR) headsets here, I might be tempted to get back into it by buying and selling mobile VR rigs.

FMP was FileMakerPro which I was a developer at the time. Then I got into MS Access (don’t be a hater) at that job before leaving for a dot com company.

When one mentions clusters today to the SQL crowd, they think of Windows Clusters (WSFC) and Failover Cluster Instances (FCI). But that is not what I was interested in. I was fascinated by parallel computing using multiple desktop or server grade equipment in the form of a cheap supercomputer aka Beowulf cluster

But now with the rise of GPU horsepower in high-end video cards or dedicated GPU compute cards, that power is available to nearly everyone.

“Find a job that will satisfy your hearts craving!” <- Being honest here, I think I’m still working on that one.

Question #1: What do you want to learn (specific skills and talents)

Some of this is for personal, some is for work.

I once knew the language C so I want to revisit/re-learn it. Why? I have a CUDA enabled GPU video card and want to get into GPU programming. I’ve thumbed through this and like what I see: CUDA for Engineers

When GPU can be applied to a problem, it can calculate MUCH faster than a general purpose CPU. Trick though it has to fit into the GPU memory. My video card only has 4GB of vram but there are cards available today from Nvidia that can do 12GB of vram like the Titan V (only $3k – but you get the idea). So I want to get back into crypto stuff and I want to learn how to use GPU to do things. I even have the idea of using what I already own to crack DES as a way to learn both C and crypto. Cracking DES | Brute Force | Applied Cryptography: Protocols, Algorithms, and Source Code in C

SQL Server: Hekaton. I have already taken this course by Russ Thomas on Pluralsight and will re-watch it. And Kalen Delaney’s new book is now out too: SQL Server Internals: In-Memory Oltp: Inside the SQL Server 2016 Hekaton Engine

SQL Server: Linux. When this gets published, I will take time to learn Microsoft SQL Server 2017 on Linux by Benjamin Nevarez as my current work environment uses Linux for everything else.  Since I want to upgrade to SQL2017 from SQL2016 next year, this would be a good time to get up to speed on it.

AND!!! These events are happening TOMORROW – PASS Marathon: Linux Edition

I need to start over again on the Microsoft Data Science program as I didn’t stick with it. But now, my boss is willing to give me time to study for it so I want to hit the first quarter hard and concentrate on it.

Then as a continuing personal hobby, always something new to learn about Unreal Engine and VR. I still give presentations using it and in the Spring 2018 I’ll have a brand new version. A hint: I finally will be getting into learning about AWS and Azure. Here is one technology which will help drive adoption; web-based VR authoring aka Sumerian

I know a lot of people who love to experience and play in VR but are intimidated by learning a full-blown video game engine like Unreal. With more and more geeks who are both into SQL and VR, I think 2018 will see more things using it, especially if it can be made super easy. Ok, one more hint: I will buy this plugin during my vacation and play with it and see how I can use SQL inside, yes inside, a VR experience:

So yes, I am spending time in the evening working on some non-SQL stuff. SQL by day, VR by night.

Question #2: How and When Do You Want to Learn?  

Mala has done a great job rounding up some resources on her link above.

I have my own personal Pluralsight subscription and recently bought Brent’s Cyber Monday recorded classes. An additional free resource that can get overlooked is your own public library card. It gives me FREE access to and those courses are in addition to and complement the Pluralsight courses. And don’t forget GroupBy too.

For me, I have to do it first thing in the morning before work starts or right after I take a run. I don’t retain as much info if I wait longer but then I usually get a short second wind/motivation after dinner if I am not too full from eating.

My learning style is by doing- I can’t just sit and watch stuff. I have to play around with it and try things.

I will travel and submit to speak and learn at SQL Saturday events as time and budget allows. 2018 might be a lean year for me as we are still on a no-travel restriction at work. I’ll do what I can even if that means only driving distance venues.

Question #3: How Do You Plan to Improve on What You Learned?

From reading both Peak: Secrets from the New Science of Expertise and Grit: The Power of Passion and Persistence and some of my own experiences trying things, it really is a use it or lose it proposition. I once knew C but have forgotten everything because I didn’t use it as a hobby or for work. Personal advice: don’t beat yourself up if you forget things you once knew so well. Re-learning can activate A LOT of memories you thought were gone and can help make the learning a little less painful. Plus you can add wisdom to things you did not have previously.

Good luck with everyone’s learning goals!

Posted in Uncategorized | 1 Comment

Folks Who Have Made a Difference – Authors and Avatars



This is a post for T-SQL Tuesday #96 and it is about “…the opportunity to give a shout-out to people (well-known or otherwise) who have made a meaningful contribution to your life in the world of data.” It is being hosted by Ewald Cress aka @sqlOnIce Thanks Ewald!

What is An Antilibrary?

So just so you know, my antilibrary is vast. I wish I had the money and time to buy books and to read them all while knowing that I am only scratching the surface of what I am able to learn about.

Softpro Books

Softpro Books was a one of a kind of a brick and mortar store.

It ONLY carried tech books. But only the latest versions. If you wanted something that was 2 or 3 years old, chances were they no longer carried it. They could probably order for it you if you really needed it.

I bought so many books from that store that I literally have hundreds of bookmarks from them.

I used to joke with the store’s owner, Jim Treitman, that I should probably go ahead and deposit some of my payroll check into the store every month.

I would daily check their RSS feed for new releases, especially as it related to SQL Server.

“Softpro Books, this is Jim, how can I help you?”
“Hey Jim, it’s Todd.”
“Oh, hi Todd, what’s up?”
“Say I just saw XYZ came out. Do you have a copy?”
“Let me check… Yes, I do. You want me to set one aside for you?”
“Yes, please. I’ll swing by after work to pick it up.”
“No problem. See you then. Bye!”

Had this conversation hundreds (!) of times over the years.

From a personal touch to a knowledgable staff they were awesome. The smell of coffee, National Public Radio playing in the background and a store full of candy. To me it was a slice of Heaven. And at times when several people were in the store we would share ideas or help solve each others technical problems.

But alas, they couldn’t hold out against two major forces: and the decline of technical books.

They knew the writing was on the wall about loosing out to Amazon but so did a lot of other small bookstores. The fact that they lasted until May 2014 was incredible to me.

The second part was a bit more troubling. In an age of technology why did it seem like less tech books were getting published than before?

There just isn’t much money to be made being a tech author plus it is an insane amout of work. I doubt ANY tech author will ever make it on to either Amazon’s or the New York Times bestseller list. Blogs and on-line documentation are the main written sources now. Things change too fast today- by the time the book is published parts of it will already be out of date. Plus something else happens- it becomes a drag on the author.

Yes, I said that.

Some authors just want to write a book and be done with it. They don’t want to be held hostage to it to keep it up-to-date as versions change. Or keeping the code compatible with different versions of the software. Or responding to technical errors or adding errata that got missed or overlooked.

One of our local computer retailers, Micro Center, has nearly stopped carrying books altogether. They too used to have rows and rows of computer books. But not anymore.

Plus have you seen the Teenage Vampire Romance section in Barnes and Noble lately??? It is bigger than the data books section. Bookstores will only carry what sells.

Jim started his own Battery Giant franchise store in Denver, Colorado in June 2014 after closing his Softpro Books store. The battery for my indoor garage opener recently died and so I had a chance to give him some business and catch up. Great guy.

My SQL Bookshelf and my Heroes – The SQL Authors

And now a reveal. I started working with SQL Server 7.0 back in 1998 and became an accidental database administrator (DBA) full-time in 1999. I was a scared to death introvert and books became my friends.


So I began hoarding books. Just kidding. Well, maybe. I did begin however buying and reading A LOT of SQL books. Slinging code, working through the examples. I became a self-taught DBA. Yes, I DO have many other books too and might share them at another time but these are just the SQL ones I wanted to highlight for this post.

I began to even feel at times that I was having a conversation with the author(s) as I read their work. Some had a super dry tone, others sounded like they were in the room with me.

Over the years when an author whose book I had was going to be in town, I made an effort to bring my copy for them to sign. User groups, SQL Saturday events and the PASS summit.

This is for a personal collection. I doubt any of these will every bring top dollar on eBay for being signed by the author(s). The MVP book signing was great as I had a chance to get several authors to sign it. More on that story in a moment.

And I have some titles on my shelf at my office as opposed to my basement as well.

There are generally three reasons I buy books:
1. I am working on a current project and need to absorb the information quickly.
2. I want to do a deep dive on a subject and want to understand it thoroughly top to bottom.
3. I want to have a general understanding about something so I will skim the pages and maybe read it cover to cover.

One thing I personally cannot stand is getting blind-sided by something obvious that I could have read about in a book. Yes, that is an introvert fear of mine.

Punking Jen McCown

At the 2011 PASS summit, @JenniferMcCown was a new author. I was in line to get her signature in addition to several of the other MVP authors too for the recent book SQL Server Deep Dives Volume 2. I had bumped into her and her husband Sean earlier in the day. Sean just happened to be walking by, saw me in line and said, hey, let’s play a trick on Jen. Let me sign something on her page of the book. Which he did and is the last image above.

And so when I got up to Jen, she opens the book to her page, and you should have seen the look on her face. Someone else had already signed it! Sean and I and others had a good laugh.

Why Should We Become Authors

Please understand I have never published a book. So some of the following advice are just my thoughts.

1. Ask to be a technical reviewer- or as a second set of eyeballs. READ everything and work ALL of the code examples. Test for various versions of both the database engine and SQL Server Management Studio. Provide feedback and suggestions.

2. Ask to refresh an older version of the book. Several titles that I have are now out of date and have not been refreshed either in print or electronically.

3. Create a new book. If I had to chose right now, I would pick either SQL Server Migrations and Upgrades or Multi-Terabyte SQL Server Administration.

These authors which I have read over the years are my heroes. THEY inspire me to apply what they have learned and shared in print form. Without them, I doubt I would be where I am today.

Like I said before, they are NOT in it for the money. They have their reasons why they publish and I am forever grateful for those who put in the hard work to become an author.

Sci-Fi and VR Reference

For those who don’t know me, I am into virtual reality (VR). I own several headsets: Oculus DK1, DK2, Rift, and (2) Gear VR headsets which I use with my mobile phone. I also am into Unreal Engine 4 from Epic Games and have built several demonstrations and have even given SQL presentations using that video game engine. While what I have done has been pretty simple to date, things are about to go to a whole new level 🙂

The Diamond Age has a concept in it known as a ractor. This ractor is a human actor but their voice and movements have been altered into an avatar which interacts with a young girl. The ractor grows up with the girl as she becomes an adult.

What is interesting is that the ractor(s) use technology that is encrypted and the ractor is both anonymous and yet trusted. But this is a sci-fi book, one I highly recommend reading.

SQL Membership and Some PASS Numbers

Based on some informal conversations, I discovered the following. The number of members of the site SQLServerCentral is about two million. The number of people registered as PASS members is about 250,000. The number of people who can physically and financially attend the PASS summit is ~5,000.

So for people to stay connected, learn and share compared to Summit is tiny. Yes, there are user groups, SQL Saturday events, PASS virtual chapters, etc. but there is no personal interaction available for people, especially if they are financially or physically unable to attend.

Twitter and Slack channels notwithstanding, those are still written communication and not social vehicles that I am about to describe.

20 Years of Books – The Next 20 Years

I am one to make some bold predictions.

Facebook Spaces is now in beta. When it hits, it will seem cartoony, nothing more than, “Hey everybody, look at me and my supercool avatar! Let’s go look at a YouTube I just found! Then you can watch me paint something silly! Then how about we watch a movie together and make our own Mystery Science Theater 3000!”

What is going to happen when authors can meet their readers in virtual reality? What is going to happen when authors can share fantastic Quillustrations instead of whiteboard sessions in VR? Or how about using Bigscreen to collaborate with friends instead of a GoToMeeting?

Heh, what is going to happen to the virtual chapters of PASS when they become VR chapters?

I can see the time coming where vetted SQL Server professionals can reach out and host either hands-on or presentation sessions to connect to people who normally might not be able to attend in-person events. Same for remote hands for troubleshooting.

Personally I know of some folks who are on the neurodiversity spectrum. Think about autism for example. They can have a hard time trying to communicate with people let alone hold down a job. Imagine if the tech of VR and the selfless service of the SQL community can bring these people into the SQL family with patience and understanding.

In Closing

The last ~20 years I have been into books and seeking out the voices of authors. What will the next ~20 years look like with connecting to people and voices from places that I might not have ever heard from?

Posted in Uncategorized | 1 Comment

I Don’t Care Who You Are



This is a story about a SQL Server database administrator (DBA) I hired many years ago. I am no longer with that company and names have been changed. Except mine 🙂


This is also a post for T-SQL Tuesday #93 and the series is called Interview Patterns & Anti-Patterns and it is hosted by Kendra Little. Thanks Kendra!

Interview Process

At this particular office, we had a need for a full-time DBA. One of our datacenters was also nearby.

My process was to get candidates from recruiters, conduct phone screens, and if they sounded like a good candidate, to bring them in and conduct a two-part interview. Part 1 would just be talking- background, resume items, war stories, SQL knowledge and wisdom. Part 2 would be hands-on technical. I would spin my laptop around and with SQL Server Management Studio (SSMS) launched, have them tell me about the instance it was connected to. I would then ask a series of questions to demonstrate their level of hands-on technical chops. From there if they did well, they would come back in later and meet the rest of the IT team and then a final decision would be made as to extend an offer to hire them or pass.

Enter Stage Right

I had been through a lot of candidates via phone screen and had some come in for an in-person interview. Some people talked a good game but then bombed on the technical hands-on part. I think I made several people nervous when I said, “Don’t screw anything up, this is a production server you are connected to.” While that was true, I really wasn’t trying to scare them but it does show a certain level of confidence and maturity when you can keep your cool. DBA(s) need to be able to handle pressure, stress, being tired and still be able to function in a cool, calm, and collected manner.

Agent 003 was waiting for me at the reception desk to the IT area. I got there, reached out to shake his hand and he smiled and grabbed me with his left hand and gave it a solid shake. I looked down and noticed he didn’t have a right arm- he had a prosthetic.

Now the job description listed the usual be able to lift 70 lbs stuff but I was more interested in his brain and skills and not in his physical abilities.

I began to think about how is he going to type on my laptop? Do I need to get him a full-sized keyboard? Any other assistance devices? It had never occurred to me that I need to be able to accommodate somebody like this. Surprise! He typed just as fast as I did but with only one hand.

Agent 003 passed with flying colors both parts of the interview, met the crew, offered him a job, and he accepted!

Personal Observation

I don’t care who you are. Can you do the job? I don’t care if you are a reformed, one-eyed, one-horn, flying purple people eater, provided of course that people are friends, not food.

Maybe sometime in the future when the kids have graduated college and I can go back to school full-time I want to work on career 2.0 – becoming a neuroscientist. So I enjoy reading about the mind and the brain. For example, one book that I read (The Brain That Changes Itself) and he’s also recently published another one on the same subject of neuroplasticity-

Up until ~30 years ago, scientists believed our brains are hard-wired at a certain age and that the brain does not significantly change after that. Well, sometimes scientists are dead wrong. So I knew that Agent 003’s brain, besides being an awesome DBA, was able to cope and adapt to probably anything the job might require of him. The human brain is an amazing machine and it is capable of re-wiring itself in new and sometime marvelous ways.

The other point I want to make is that all of us are getting old. It will not be too long before we are wheeling around in Ferrari wheelchairs or exoskeletons or some other contraption. As long as we have our brains intact and can communicate with the world, we can perform useful work. I’ll talk about my vision for teleoperation/telerobotics and drones another time.

So I don’t care who you are, what you look like, etc.- my only concern is can you do the job.

Hired and Dinner

Shortly after Agent 003 accepted the job, I returned to go over job responsibilities, daily tasks, future projects, expectations and the like and I took him out to dinner.

We went to Texas de Brazil, an incredible Brazilian steak house. This is not a place for vegetarians 🙂

So we are enjoying our cornucopia of lots of different kinds of tasty meats when Agent 003 says, “Todd, you are probably wondering about my right arm.”

“Well, yes I am. I figured you would bring it up at some point.”

“My father was very religious growing up and he caught me masterbaiting.”

I kicked back in my seat, rolled my head back and just busted out laughing, really loud. I felt all kinds of eyeballs on me from the other patrons but I didn’t care. That was the best deadpan delivery I had ever heard.

If I remember right, he worked on an offshore oil rig and his arm got caught in a chain. They couldn’t get him to proper medical attention immediately and he ended up losing his arm 😦

We enjoyed the rest of the night and he was one of the best DBA(s) I have ever known. His sense of humor, technical chops, working with difficult people were second to none.

So in closing, just focus on people’s brains and skills that pay the bills. I don’t care who you are or what you look like. Can you do the job?

Posted in Uncategorized | 1 Comment

Hard to Admit Academic Failures- Here Is Mine

The original post which inspired myself and others to respond:

And now, an expanded version of my response.

My academic career began in the mid-70’s. Some of my earliest memories of TV reporters were of Walter Cronkite wearing his horn-rimmed glasses and talking about the Vietnam War.

At that time, the Space Race had become routine too. It seemed like nobody cared about the relative and regular miracle of access to space. I grew up wanting to be an astronaut/scientist. But I had a fear of Math.

My dad was an engineer at the time so I grew up watching him explain things in terms that I could understand and building stuff together.

An aside, my grandfather (his dad) was the coolest person I knew. Grandpa had a Caterpillar D4 bulldozer, ’56 Ford Dump truck, machine shop (I love the smell of a machine shop to this day), welding equipment, other tools & equipment and a host of semi-finished/unfinished projects.

He had the largest hands of a human you had ever seen. He dropped out of school in the 8th grade and had to start working to support his family. With his hands.

Even to this day I will never forget his immortal words, “Todd, once you get your smarts, no one can take them away from you.”

Grandpa and Grandma (and my dad and his sister too) grew up from folks who faced the Great Depression, also known as The Greatest Generation.

For this post, I just want to focus on some of my academic exploits. But I also want folks to have some kind of context of who I am and where I came from.

I was identified as gifted and talented (GT) I think in the 4th grade. I took my first in-person IQ test at that time. This guy had a stopwatch and he asked all kinds of questions. I did the best that I could.

I got into a GT program at a public school at that time. It was intense, lots of experiences and lots of reading.

Later we had to move and that kind of threw a wrench into things. By the time I reached high school (HS), I was still really smart but had NO study skills.

So I coasted through HS and graduated with Honors. I remember but don’t have a picture handy of my 18th birthday cake. It actually said “UT or Bust”.

Went to UT at Austin… Then the wheels feel off. I partied too much. And it cost me dearly. Sometime I will get my transcript from that time but I got a few F’s that first semester.

Second semester, I was really in bad shape. And then even more bad news. During Spring Break, I went back home and my parents and I had decided that college was becoming a huge waste of money and I was not doing what I needed to be doing.

So I needed to drop all of my classes. UNFORTUNATELY!!! The last day to drop classes w/o a GPA hit was the day BEFORE Spring Break. So I went into the office, begged and pleaded but was told their hands were tied.

I was going to get 5 F’s for that semester. If any of you want to compute your freshman cumulative GPA for 5 courses with 0.0 for a semester, go ahead.

I was mentally crushed. There was no hope for me to EVER return back to college with that milestone around my neck. I had let down my parents, myself, and all hopes and dreams of being the first grandkid to get a college degree.

My grandparents were disappointed with me. Not one of their grandkids had ever gone to a major college and here I was, their first best chance, and I blew it.

After my health began to slowly return, I applied for whatever jobs I could do. I began pumping gas at a full-service gas station. Remember full-service gas stations??? Yes, I’m old.

My habits were hard to shake off and I fell into a group of “friends” who loved to party too. I got fired from that job. Shortly thereafter I began working at Discount Tire.

Let me say this- I LOVE Discount Tire. I love the smell of tires. It is the smell of money and of hard, back-breaking work. So I began my blue-collar career in earnest.

After a while, I began to put 2 + 2 together. I knew some folks in the late 80’s making over $150k/year managing a high-traffic store. But if one got stuck with a low-volume store as a store manager, well then you just had to deal with it.

Anyway, I started going to church again and taking college classes at night. I hated taking classes after work. I smelled like a tire with a fresh coat of Right Guard and colonge. So embarassed.

Started to get some good grades and decided I didn’t want to change tires the rest of my life. So I talked to Mom and Dad about moving back in (I had moved out a while ago into my own apartment) and wanted to go back to school full-time and finish what I had started.

“As long as there is no partying. And if you get any bad grades? You’re done and you are out of here. Understand?”, “Yes Sir!”

So with a chip on my shoulder, I moved from Plano back to Houston and went to the Admissions Office at the University of Houston (UH). Now, understand when I was in High School, folks would kinda look down on UH as “that” school you could ALWAYS go to if one couldn’t get into a better school.

The admissions counselor pulled up my transcript from UT and Richardson (in Dallas) and gave me the grim news. “I’m sorry Mr. Kleinhans, but you do not meet the minimum requirement for admission to UH.”

I’m like, “WHAT??? That UT thing was FIVE years ago! I’ve grown up and I know and respect the value of time and money!”

“The numbers are the numbers. You can take some classes at Houston Community College (HCC) and pull up your GPA. Once you can do that, we’ll talk again. In about 1.5 years if things go well for you.”

I quit my full-time, decent paying job and moved back in with Mom and Dad for this??? I sucked in my pride, picked up my chip, and started the slow climb out of GPA Hell.

Good news was that I was able to continue working for a local Discount Tire store so I changed tires all through school and paid my way through.

Went to HCC for 1.5 years (where I did great at Math. What is fear? False Evidence Appearing Real) and then applied and got accepted to UH. I was so excited! Sad news- my Grandfather died during my first semester at UH. I was devastated. For a few weeks, I was unable to think straight. His death hit me really hard.

During all of this I had met my future wife and without her I don’t think I could have made it. She is STILL my best friend and the only reason I didn’t just drop out from school and stick with something I knew- grind away changing tires.

Finally got a BBA in Marketing from UH. I just wish I didn’t have a nagging fear of math as that prevented me from enrolling in any computer science classes. Dumb on my part.

Got married, bounced around a few jobs, moved to Colorado, bought a house, started a family, joined the U.S. Navy Reserve when I turned 30, and began working on a Master’s degree. Finally finished in 2003 with a Masters of Information Systems from the University of Colorado at Denver (dang, that’s a lot of words 🙂 and that story is another tale of trials and tribulations).

And here we are today! I am now looking to transitioning from being a database adminstrator to a data scientist. Wiser and WAY more mature now and I have no fear of math anymore 🙂

Posted in Uncategorized | Leave a comment