Last month I visited MagicPASS, this month I’ll be at oPASS and presenting again on my pattern for automating database restores. It’s a still evolving presentation, but one that I think engages attendees. They know how to restore, they know why, so it’s just layering some ideas on top of that. If you’re in the Orlando area I hope you’ll come by for the meeting.
I just posted Pausing PASSWatch on the PASSWatch blog, wrapping up a project that ran about 16 months. It’s hard to call it a success, based both on stopping it and not accomplishing as much as I hoped, yet I don’t see it as a failure either. I learned a lot and maybe did a little good too.
Stopping that project doesn’t end my interest or enthusiasm in PASS. I’m about half way done with a long form post on financial reserves – an important but arcane topic. I received great answers back from PASS on my initial set of questions and I’m still integrating/processing those. Look for that by the end of this month.
After that I’m going to write a post proposing a PASS Academy to train the next generation of PASS leaders on being PASS leaders. Lots of ideas and lots of reasons to do it. Hoping to finish that in March and then see if I can get the Board to put some money into it for the next fiscal year.
My latest question of the day on SQLServerCentral is DBCC Error 6. Text of the question below:
As the on-call DBA, you received calls of timeouts and errors on a SQL 2012 SP3 instance used for testing. You track the issue to IO requests that are taking longer than 15 seconds and coordinate with the server team to move the instance to another node. Once that is complete you check the log and see that the database is still in recovery and recovery seems set to take awhile. It’s near the end of your shift, so you hand off with a reminder to run DBCC once recovery is complete.
The next day you check the log as part of your daily routine and see that recovery completed and no further IO errors were noted. The DBCC was executed, but it failed with this error:
DBCC CHECKDB (MyDB) terminated abnormally due to error state 6. Elapsed time 0 hours 15 minutes 12 seconds
Based on what you know of the history of the incident and what you see in the log, what would be your diagnosis and recommended next step(s)? (Choose 2)
Go to DBCC Error 6 to see if you know the answer!
Design a Better SQL Server Pricing Model ran on January 21, 2016 and as you can guess from the title is about the challenges we have with the current pricing model…and how we might improve it. Nothing simple about that, from our perspective or from that of Microsoft. Ultimately it just feels more complex than it needs to be. But is it? The trick to licensing is that once you figure it out once, every year after that is a true up and minor tweaks because you’ve figured out the basics.
Quick reminder that the call for speakers for Orlando Code Camp is open through Feb 6 (next week!).
This ran a couple weeks ago (Turn Out The Lights) to see if I could spark a discussion about how/when/why we might think more about costs incurred by the way we provide solutions. Based on the follow-on discussion I didn’t quite achieve that. It reminds me that there is a fair amount of resentment (for lack of a better word) about how things are done/handed to us and that in turn maybe makes us a little cynical at times about the value of trying to reduce costs. Of course it’s not as simple as ‘use less’, we have to provide the performance when needed and that’s typically an opposite condition.
I want to try this one again, but I think at a higher level, about frustration and bad decisions.
I did my presentation on automated restores for the second time, changed a few things. It was/is a presentation with two different parts; one is about a pattern, the other is about implementing the pattern. We had a much better discussion this second time, but often about the quirks/complexities of my environment rather than the overall pattern. It’s tough to balance. I’m trying to get attendees to see it’s not going to be a one size fits all pattern, but personalizing it (and showing the code to match) is both powerful and interesting. Right now it’s still a lot for a 60 minute presentation. Noted some things to try next time – probably April in Clearwater.
Couple interesting things from the meeting. One was that we had a new attendee. First time there, thinking about being a DBA. Relatively rare occurrence. Right was we stopped for the dinner break the new attendee introduced herself to the great, stated her goals (which included networking) and that she hoped to learn a lot. Perhaps the bravest thing I’ve seen a new attendee do. It generated a very positive response – was nice to watch! Few first timers are going to do that, and we have to remember to do a lot to make them feel welcome.
The other part was Kendal showcased his supply of “big” and “small” raffle prizes for the year. That definitely got people interested. He will raffle one big and two small items each meeting and they get to pick from what remains. A simple thing, but it added some fun to the meeting and the process. Sadly I didn’t win anything.
Late posting, so reduced notes!
- Speaker party was good. Room was loud when full due to wood walls and nothing to dampen sound.
- Finding the college was easy. Finding the building wasn’t quite so obvious. A couple more signs would help and maybe call out where to park a little better – more than one parking lot. Makes me wish that we could put in more precise locations – lat/long to the parking lot & front door!
- Great space for an event.
- Sponsors were on 2nd floor, reg and lunch were on the first floor. Seemed to work well.
- Lunch was salad, pasta, red sauce, and breadsticks. Sauce tends to splatter – have a plan for spot cleaning shirts!
- End of day raffle was in a big stepped auditorium (college style), nice for everyone to sit and relax. I wish we had that in Orlando.
- My session went ok. Was first time out and wanted to try some things, came back with useful notes for my 2nd attempt (next post).
- After party location at the Alley was good, and food looked really good.
- General area was good. I stayed at Residence Inn, tons of restaurants near by and a book store too
- It was cold. 35 degrees cold.
Perhaps the most interesting part of the trip was a conversation at the speaker party. Another speaker brought a former colleague that works in IT, but not SQL. He was very impressed at being welcomed and included in conversations, said it was much different than his previous experiences within his own specialty. I don’t think we take for granted the friendliness of our culture, but it’s easy to think the rest of IT is that way and it’s not always. Also illustrates how much good you can do with a simple pleasant greeting.
I was interested/intrigued to see that we’ll have a Powershell Saturday on March 19th in Tampa. This will be the 10th event in the series – that’s very good progress!
I haven’t decided if I’ll attend yet. Definitely interested, but it’s a 2 hour drive, and I’ll be making that drive a couple weeks earlier for SQLSaturday Tampa and then again in April when I present to the Pinellas SQL Group. Worse problems to have than too much learning to choose from.
Over the past couple of days I’ve posted several times about the Advent of Code Contest and worked my way through the first three puzzles, now I’d like to share some thoughts about how it works and what I’ve learned so far:
- The site is well done. Simple to use and the xmas tree provides a bit of ‘keep going’ motivation. I also like that, at least so far, each puzzle has a part 2 that builds on the problem (and maybe the solution) from part 1.
- I like that the puzzles are language agnostic. I used TSQL for the first three because it’s the language I use most and I wanted to see how it would work out, but I will probably switch to Powershell at some point because I need to build muscle memory there.
- These would make great interview questions. Even if it couldn’t be solved entirely, just talking through the approach the candidate would take would be revealing.
- You get to decide how elegantly you want to solve the problem. Quick and dirty and unreadable still works if you get the right answer. Note that I’m not recommending that, but part of what you get from doing these is figuring out a way to solve the problem. That’s good for your brain.
- I do wish that there was a better mechanism for sharing solutions than the subreddit. I like seeing how people solved it.
- I wonder if we don’t think differently based on the language. I was talking with Steve Jones yesterday about the Santa problem and he asked how I tracked the delivery locations. I used a table with x & y values. He used a dictionary. Same idea, except he used the dictionary to store the unique pairs, while I stored every visit knowing that I could easily derive the pairs later. As a “data guy” I like having the raw, and knowing that there was a part 2 made me reluctant to make my solution too specialized. Note that I’m not saying my solution was better, just a different approach on the storage (and the persistence of the data isn’t that important).
- It’s easy, maybe too easy, to see all of these as problems to be solved with loops. If you’re not a SQL person, dare to try it as a set based problem! I can also see that at some point it may be unreasonable to use a set based approach just to avoid a loop – we’ll see.
- We also talked about #4 yesterday (which I haven’t solved yet) that has to do with an MD5 hash. I was thinking about a way to do in the minimum, or at least less than maximum iterations, if I could see any kind of pattern that would let me do something along the lines of a binary search. DBA’s have a deep bias against loops and we talked about using a tally table (a loop of a different stripe). I wasn’t sure, because the tally table would force me to calc the hash for all rows, in a loop I could exit earlier (faster)…in theory.
- I had fun doing the first three, but what made it more fun was talking through my solution with someone else who had also done it.
I don’t know if I’ll do all of them, but I’ll definitely do some more.