At some point all data administrators will have to tune their environments and there are may ways you might go about that.  In this episode, we talk with Pinal Dave about how he does performance tuning and the thought process behind the approach.  What I found interesting about this discussion is we have our own version of the how to do things, but there are some basics that everyone should have covered.

This discussion does not get heavy into the how to for all scenarios; however, I think you will find the discussion very informative.

 Episode Quote

“I let them explain in the first five to ten minutes their own problem. Understand their concern first.”

Listen to Learn

  • The first steps in performance tuning
  • Why MSDB can play a role in performance
  • Why server setup is still so important
  • Different approaches to troubleshooting performance
  • Why DTA still gives us heartburn
  • Pinal’s take on how long the server should be up before you use the DMVs to diagnose issue.
  • Who Adrienne Frost is

Missing Indexes
Missing Index Advisor
Pinal’s session from PASS Summit 2016
Adrienne Frost
Pinal on Twitter

About Pinal Dave

Performance TuningPinal Dave (pronounced Da vey) has been a database professional for nearly 20 years.  He is the author of the very popular blog sqlauthority.com, which just completed its 10 anniversary.  He has written a book on interview questions and is a frequent speaker at conferences.

Transcription: SQL Server Performance Tuning

Carlos:  Ok, well Pinal, welcome to the show!

Pinal: Thanks for having me! It’s a wonderful. I’ve been talking to you guys and we wanted to so glad to be here and I’m super excited.

Carlos: Yes, it’s almost a pity that has taken us this long to have you on the show. But thanks for taking a little bit of time and coming to talk with us. Ultimately, our topic today is performance tuning. And this is one of those topics that it seems like we can never get enough of, right? There’s always something to be tuning, some setting, some tweaking, some metric that we need to capture and then compare again. And so, I guess let’s just go ahead and kick it off with what are some of the, maybe. Let me say that again. What are some of the top things that you look for when you want to start performance tuning, SQL server, database or instance?

Pinal:  That’s a very good question! So, this is investing what I want to look into and what people want me to look into. They are two entirely different things. And I find it funny and when customers, so I’m an independent consultant for a SQL Server performance tuning so people come to me, hire me and say the system is slow. So far we are together with them. And this is where now the difference comes, so they come to me and say, “We want you to look at our indexes, and tell us why my index is not used by SQL server?” Or sometimes they come back and say, “Hey, look at this particular query, I believe it’s running very very slow.” Or they come back and say, “Our application is generating a lot of unnecessary data can you help us to clean it so it only generates necessary data.” They come back with this kind of request and that’s so interesting so this is what they want me to do. But you know what, I know behind the scene that most of the time they are just seeing things which they are seeing but our real problem lies somewhere else. Probably in TempDB, probably in I/O distribution, maybe they are facing deadlocks or [inaudible – 02:14]. So I think this is like the very difference so. Do you want to know how I approach this particular problem when customer come and say this is what they want to do and how do I try to bring them to the real problem?

Carlos:   Yeah, I think that’s a very interesting point. Even as database administrators we’re kind of stuck in that rut as well where someone will read an article, right? Some new webinar comes out with a specific metric and they’ve decided that that is the key that will solve all their performance problems.

Pinal:   Absolutely, so most of the times when a customer comes to me and says, “This is the particular problem.” I never said, “That may not be their problem.” I always say, “Well, then we need to fix it.” And I let them explain in the first five to ten minutes their own problem. Once I hear them properly, uhm, and they feel confident that they have explained the problem, and we try to look into. So, I know in that first five to ten minutes are always little bit back and forth but that gives me an idea of what level customers are, what they have done so far, where the problem situations are? And then I try to bring them to couple of very interesting point which is standard in my performance tuning consultancy. But the point is these are the things which we need to do to identify better your problem is. So, definitely wait statistics where I start, then I start looking up their I/O distribution because I figured it out that most of the people sometime put all the data on a CD-Drive. They sometimes put everything on a D-Drive where log and data index is anywhere, backups are together. So if they have situation like this, ok, so you know something to be improved. And the third thing is that, you know, I try to run their long running queries, CPU intensive queries, I/O storing queries or and try to make a list of the queries. And I have figured it out that as soon as I start reach to that particular point where I start bringing up and throwing I/O storing or CPU queries, CPU intensive queries, customer immediately start recognizing them, “Oh, this makes sense. Oh this is also our problem.” Yes, this was the reason and we end up looking at that time together or comprehensively and then I put them together. I said, “Look at this. You are saying you have a problem at this particular query but reality was that this is what is happening.” Yesterday, I fix a very very interesting problem. And I was so proud of me when I fixed it. Maybe I would share with you in one minute and that would sum it up. A customer come to me and say, “This particular query suddenly starts slowing down.” And we’re like, “Oh ok, why is it so?” We try to look into it, and they say, “This query runs once a day only, use to run for two seconds now taking ten minutes.” And we’re like, “Ok, that’s interesting problem. Let me look into this one.” We looked there and there was, it was sending an email. And he was like, “Ok, it seems like sending an email.” Then we went back and try to. I said, “Ok, I do not know how to fix it but let me go and do an analysis of your system.” We did analysis of that system and figure it out that they have a problem in pretty much sending every single email not that particular one. But other one were asynchronous so they didn’t care much where the email comes so email that are coming to the mailbox are going to customer. But for this particular query they have received the report that sending email very late. Now, email was a problem so what does it mean? Is it the SQL is the problem? Well, it was in fact in that case because they had MSDB database where they were using SQL mail to send email. And MSDB database had all the history of email by default it stores and that email table of email table I forgot the exact name but that particular table was huge, over 10GB. And inserting data into that table was taking so long and so much time, and this is why the problem was for this one query. We fixed that problem in MSDB and suddenly the system picked up and they were saying, “I never knew I was able to get such a big performance.” Now, they had a problem in the query. We fix in something else, somewhere in the database and take out amazing performance. And this kind of challenges makes me happy that, you know, when how we diagnose it, how we figure it out, where the problem is, when we fix it, how we get performance. A long answer to your short question but I think it was impressive and I was very impressed yesterday when I fixed it and it was very interesting as well.

Steve:    Well, I know that definitely sounds interesting to me because it seems like anytime that MSDB grows to a certain size. It’s usually an indication that there’s something in there that is bigger than it should be whether it’s job history, or mail history, or other histories are being kept there. And I think that’s a common thing that people overlook and going in finding that and speeding up the email where the assumption is usually it’s going to be the query. But it turns out that sending the email is the real problem. I’ve seen that more than once and in MSDB in my experience.

Pinal:    Absolutely.

Carlos:   And I think Pinal puts an interesting twist on that first step and that is let the user explain what they think the problem is because at the least while, again in his example, it ended up being something different. They weren’t necessarily. Originally, they thought they’re going to be doing performance tuning on a query. It ended up being something very different. But when you report back to them, you need to indicate what you have found relates to the problem that they’ve identified so that they can feel like, “Ok, yes, now my problem is solved.”

Pinal:    Absolutely. And that’s what that gives them more confidence and I think hearing. One of the things which I see with lot of customers and lot of consultants is a little bit arrogance in them and sometimes I do not like it. They think they know and the customer do not know and they go there with such a heavy ego and said, “I know what I’m doing just step aside. Let me fix it for you. Just participate when I’m done with this, doing this. I will show you the internal things.” Any consultant, maybe let’s say, a plumber does to my home, or carpenter, or maybe any pesticides consultant. When they do this kind of thing, I also feel little annoyed. Let me explain my problem.  And I think that just let’s do even SQL Server because now I’m a consultant and I want to make sure that my customer or my client explains the problem, understands it, and I understand it. And I go back to them saying, “By doing this I fix your original problem.”

Steve:    Yup. So listen, understand then go track it down and put your ego aside and all things will come out good.
Pinal:    Absolutely. I think this is something, I think I shared with Steve as well as I never see like no matter what you do Steve, you never have any, or you always answer very politely. And you know so much about corruption which I learn just sitting with you like the other day. And you were so kind to just open a book and explain and that’s motivating me. See, this kind of thing about the community motivates me. People are willing to share and that’s what all about sharing and that’s why the SQL authorities are out like, “What I know, I want to share.” And just like all of you have been doing it. Like, Carlos this webcast is sharing, right? People are just learning out of hearing it. So, you know, we do a lot for community and we share. And I think it’s amazing that we have a feeling to give back to everybody.
Carlos:   So, we’ve talked a little bit about a scenario in which we kind of dug in. You mentioned wait stats is an area that you want to start looking for performance tuning, I/O, and then your data, and the file allocation.
Carlos:   Those seem like very. It almost, well, because not maybe a quite server setup but when I start thinking about performance tuning some of the, I just say the ground level problems if you will. You mentioned TempDB as well. Almost come back to how the SQL Server was set up.

Carlos:   And interestingly enough we have a previous episode in which we kind of went through. And talk about the checklist if you will of this are the things that you should be, the knobs you should be turning when you install your SQL Server and which you should be looking for.
Carlos:   It seems like in certain instances kind of going back to the beginning making sure everything is set up properly and then we can kind of get into the “hard stuff.”

Pinal:    Absolutely because, you know, execution plan and understanding the people’s query is so difficult thing to do. I mean, even if it sounds simple, we can definitely hit the execution plan and said, “Aha, there is a bottleneck. But aha, this one is not a good operator.” “What are the alternatives?” Not always we have alternatives because 95% of the time the developer comes back to us and say, “Well, if I change this I will have to do a lot of test, and lot of, I need approval, I need to produce that.” Or sometimes they just come back and say, “Hey we don’t have a control on the code because it’s a third party tool.” Sometimes they come back and say, “Look, we understand what you want to do but we have this business need and this is how we’ve been doing it. We don’t want to change it.” I figured it out that 50% of the time when  I want to change a code I get a pushback. I get people say, “We don’t want to do this.” And that’s why I think the focus of performance tuning is more about setting up right. And I think as you said, I think duty of SQL Server is, well it’s duty or whatever you want to call it, that it’s so easy to install. But it doesn’t tell us a lot of thing when you’re installing so you just go next, next, next, done. Wow, it’s so easy to install.

Carlos:   Exactly. Everybody can do it.Right, we want to make that as simple as possible.

Pinal:     Right. That comes up with this kind of issues like, you know, file root is 1MB. Your field factor has no relationship with your workload. Uhm, you have log file and data at the same place where you have probably C-Drive. And even though you have extra drive there is no knowledge for it. Your MDB will be just like that and a lot of people even do not understand that Model DB, they should not be playing around or they should be played only once they have understanding because when our new table or new database is created that’s a copy of Model VB. Now, this kind of basic things are missing in explanation, or understanding, or education. Whatever you want to or whoever you want to blame. But ultimately you end up being on the system which there is a lot of things you can fix. Our interesting story, I feel like telling when I mentioned the Model DB. One of my customer that I met said, “Every new database I create is created by 1GB.” And I was like, “Ok, maybe, what are you doing there?” And he said, “We are not doing anything. Every database is 1GB.” And I was like, “Interesting!” Went back and check. They have some kind of data loading done in the past in the Model DB because nobody knew what it is so there was  huge table was being replicated again and again kind of thing. And there was so many store procedures which was what’s used. And I was like laughing and I said, “Don’t do that.” And now they were very much worried that because some of the things they used and don’t know how to do the clean up. The older databases is now, oh it was so mess and hours and hours of consulting and where I was just sitting on the other side of screen and hearing their conversation about this one. And they come back to me and said, “Should we drop this or not drop it.” And we do some diagnostic so this kind of thing. So when people do not do know the right thing and they just to make a little mistake sometime they pay a lot on consulting hours, or developer Model DB afterwards.

Carlos:    Another interesting point you made. Talking a little bit about pride, now you kind of talked about it in the developer’s sense. But even as DBAs right we have the data, it belongs to us, we’re masters of the domain, uhm, and one point there are all these monitoring tools that are out there that will help us collect historical information about the SQL Server. I think at times we shy away from that and I know even when I first started in the past communities. Start learning about all the DMVs and you’re like, “Ok, I’m going to make this monitoring program if you will myself.” And I actually heard a talk from Adam Machanic, right, which I lot of respect for. He’s been on the show SP_WhoIsActive, kind of going through all of those  DMVs to collect that information and I remember him making the comment, “Oh yeah, but we put a monitoring tool on all of our environment.” Now it happened to be at an event of a company that has a monitoring product and I thought he was maybe just saying that because they’re at this event. So I followed up with him afterwards and I’m like, “So, is that for real?” And he’s like, “I don’t know. It’s for real.” He’s like, “Why do all that hard stuffs yourself? I mean people kind of figured that out. Get something that works for you, that will capture that history and then you can start digging in particularly I think in the beginning.”

Steve:     And I think that there are just so many different… Go ahead Pinal.

Pinal:     No, please go ahead Steve. No, no, I think your point is same thing I’m going to say that there are so many different things out there that does not one solution we can do. But I think you were saying the same thing.

Steve:     Yup. I think we’re, there’s just so many different ways to do what people are trying to do with different monitoring and tuning that anytime you can avoid sort of reinventing it yourself every time if you can reuse something or use some tools that are already there. You can save a lot of time and save a lot of money. And I think that’s one of the things that performance tuning side of consulting. Having those tools available to you can really make a big difference there.

Pinal:     Alright, and I think Steve, I think you also took an attempt building this one, right? I think you are the right person to talk about it because I think you have your own monitoring tool and which you have people like databasehelp, right, that just updated in October. I installed it in one of my computer and it does a lot of things. So yeah, I think uhm, and it does, I’m sure you built it by thinking that you want to solve some one problem and then you keep on adding more things as people requested. And I think that’s how the, I think the monitoring tool out in the industries are also done the same way. They come up with the one with a similar request and things. I think same thing happening with me and my consultation also that people keep on asking more thing to add and, uhm, they want to always solve a little problem but once the problem is solved they want to add more things. And yeah, so they keep on doing it. And Steve, maybe one good idea would be maybe at the end of the webcast or maybe on a podcast page you can add your databasehelp.com link. I think people can try this out and I see you just updated in October.

Steve:     Yup. You know, that’s a great idea. Thanks for mentioning that. I know that we try and mention it when we can. There’s more more people using it throughout the world every day. But yeah, it’s one of those things that it’s just a monitoring tool that’s there. And it does a lot of the things that people try and invent on their own and save a lot of time doing it that way.

Carlos:    So, let’s turn a little bit back. I know you had a presentation at past summit I think on performance tuning just a few weeks ago. Didn’t you?

Pinal:     Right, I do. Yes. It was fun, I had 400 people and I got amazing rating. I was so honored looking at what people just said good stuff about me. I was like, I was honored. I think I’m humbled. People are very very kind. Yeah.

Steve:     You know, that’s true. The past community. Yeah, you are good at what you do but I think the past community is an amazing group. There is a lot of kind people out there, definitely. So one of the things that was on the list there was about your transaction durability and its impact on queries. And that’s one, maybe if you can talk about that for a few minutes.

Pinal:     Well, that’s a good point, so again, durability I think is one of the very very confusing topic. Every single time I try to present it to the people and I learn this thing that even though we all believe that we know ACID, not all people just know ACID because it’s a theory. We do not understand any part of ACID. And we keep on talking about, “Oh, ok, oh ACID I know about it. The data should be durable. And data should be there what we updated.” They do not get it that each of the component of ACID is also related to the performance. And I think SQL Server 2014 come up with this new feature about durability of a transaction and it directly impacts how the performance works but not how the data ultimately is taking shape. So, like for example, so it definitely helps if you have an application where you are doing a lot of transactions. At that time maybe you can just delay about in the committing of your data so you keep instead of committing it every statement. You can just say, “Let’s delay committing the data.” And you take to build it up everything in the memory and at the end you commit them together and that just reduces your durability of data. What it means is that your data doesn’t go to disk but that means your operation is completed faster because everything happens in the memory. And then, it push back to the disk but if during between this little moments, if something goes wrong then your data durability will be impacted. It’s a very very powerful thing. And one of my customer started to use it and they were like, “Oh, it’s giving amazing performance.” But under the hood it’s not also true that you get performance out of it all the time. It has to be used carefully on those kind of application where you can get, if you want a control back from your statement, if you want control back from your store procedure very quickly. I think this feature can help you very much otherwise you would be just over utilizing the feature and does not invent at the point. It does not give you some advantages because lot of operations which we do in our SQL Server are serialized. So things which are serialized are going to be serialized and you will not get some performance out of it so, one has to be very very careful when they use this kind of feature. And that’s good question. Not many people understand it. So people try that and eventually said, “Ah, I don’t understand it. I’m going to quit on this.” So you need to identify the application and this is true for any feature. Don’t think about this one that a lot of features introduce in SQL Server 2014 and 2016 they help to identify where exactly you will use it. Otherwise, or using them does not give you any performance and people ultimately keep on saying, “What’s the good of this particular feature. It doesn’t do anything or there are so many restrictions.” Just like In-Memory, like a lot of people are thinking, In-Memories like not doing good for them. Actually, it was released initially but now I see a slow adoption for this particular product.

Steve:     Yup. And I think, I like to think all of those features, all those new things, all those different ways of doing that as different tools. And sometimes you, one of them is the right tool for the right job. And sometimes it’s the wrong tool for the right job or the wrong tool for the job. And I think that one of the things that sounds like that you do well with the performance tuning work that you do is truly understanding what’s the right tool. So you can use the right tool when it’s appropriate.

Carlos:    The absolute worst thing would be you enable that feature that you’re not quite 100% sure about or you don’t understand what the downside effects are, right? There while we might not agree with all of the defaults if you will. There is a reason why it is that way.  If you don’t understand what we changed when you enable or change defaults then you need to do it carefully.

Pinal:     Absolutely. That’s the very very point. And I think people also, I think to us learning is also reducing because our attention span is now less and less as we go forward. Like, you know, things are, different people do not have patience. And I think that is also changing how the consultancies are shaping up as well as how these features are coming up and tools. Like previously people have patience. Now, they just want to collect all the data and do things. Now, they just want to use the various tools and that’s why I think lot of vendors organisation, lot of talk about tools and let’s say, we all try to build something which will just automate things and will make our life easier.
Carlos:    Ok, so with that, I know you mentioned the adding index is where they’re needed or if you just have tables or just heaps. But if you have, could you talk a little bit in some of the examples of removing indexes in order to improve performance, maybe specifically around some of the DTA indexes.

Pinal:     Right, so I do not like DTA at all. Ok, some say bad stuffs about it because I’m sure people can go back to the episodes and see every single good consultant just saying bad thing about it. So I will just save time and I’ll say DTA has a lot of limitations. And matter of the fact, since it was released still today I do not see much of the enhancements in the product itself also. It will just analyze your workload and base on each query come up with some kind of queries, weird name of the index. And then, suddenly, it will create like 10, 20, indexes on your system and that they are not efficient. Sometimes they are on a single column, they are not on a multiple column and included index are coming, columns store index are coming, and lot of In-Memory and columns operation analysis index. All these things are still, I don’t know if it has caught up with the DTA.  I haven’t checked it in the recent times. So index is more and DTAs are just there. And a lot of indexes of DTA are not more used by SQL Server because workload changes. So one of the query which I give to the, it’s there on my blog which I give to the people is how they can run this any query and analysis and figure it out if the index is really used or not. If they are not using it they should go back and drop those indexes. So give them a drop script. And also one of the things which I do is that I go and check if there are table that has more than 10 indexes. Now, this number is dividable. You can say, “Oh, my number is 8 or my number is 5.” Ok, it maybe your number. So I think I reach to a point if I see 10 or more indexes on a system. I think that table will have a lot of trouble by inserting data in it. That’s what my end experience is. Again, you can hit on a 12 indexes or 15 but 10 is the number which I start with and then I tune myself so lot of people say index is a word for selecting data but it slows down inserts we know but we do not get about insert. This is what I keep on hearing. You know what; I want to add one interesting point here, if your inserts are going to slow so why insert or update this being happening or when their  happening. And that time SQL Server is going to put some kind of lock around those data. It may be a base lock, excel lock or table lock. We do not know what kind of update it is but if your update is going to lock certain part of the data. Now what happens if select comes to that particular part of data which is locked? It has to wait. So even though you have lot of indexes it is slowing down your update that may indirectly impact your select statement and your overall performance will go down. So do not be liberal by creating too many indexes so this is what I try to tell. So there is another script also which is how to figure it out which good index you have to create. So I would be happy to share both the script here and if there is a place in a podcast you can put them and people can just download those scripts and start working with them immediately and with more detail they can engage me for consulting. But I would like to, just like you, give all the scripts which is built for free.

Steve:     Yup, so Carlos, we usually have a place we can put links. We can probably put those links there as well.

Carlos:    Yeah, well our episode show notes today will be at sqlpartners.com/pinal, P-I-N-A-L. And you can, we’ll have all the links and everything we talked about in today’s episode.

Pinal:     That’s fantastic!

Carlos:    One question I had on the 99 minutes or kind of attacking those indexes from, now you do make the point, you kind of getting them 80% of the way there. And that is I’m assuming that you are coming at it from a DMV perspective. You know, SQL Server is collecting that information about how many times just requesting it and the impact that it would have on the queries. You kind of aggregate all of that up and then you make an assumption, you know, as to whether you should, you know, deploy this index or not. What happens because, do you have a minimum amount or minimum time of plan cache that you require before you start making of those assumptions?

Pinal:       Absolutely. So I request people, that’s the very very point. I always say, if the SQL Server has not started for 7 days I would like to touch it because if it is like one day or two days that thing is not going to cut it if it is a week-end of thing. So, I at least one your SQL to be running for 7 days under business workload, so maybe Sunday to Sunday, Friday to Friday, or something like that. And then I would like to touch it so that way we can figure it out that it has the right amount of the plan cache in it and I can do the proper analysis. If it is run for like one day, I think it’s not going to help at all.

Steve:     So that brings up an interesting point. How often do you run across clients that you are working with where they attempt to speed up their SQL Server by rebooting it regularly?

Pinal:     Okay, so number may be different, surprising to you. I like every single time I think there’s something about Microsoft, right, that you just restart when things does not work. My all customer is before they reach out to me might have restarted the system for at least five to ten times I just see that. And a lot of people, lot of customers are just ok to hit restart as soon as they like. Like one time we ask to change something like you know cause special for parallelism in a system and the customers say, “Now I have to restart it.” I said, “No, you don’t have to do it, it automatically takes impact without restarting.” Or they would not believe it until they restart it. So after changing every configuration even though I prove them with demonstration they would just go ahead and restart it. And I said, “What about your customer?” They said, “They will just think it’s time out.” And I just see this kind of thing and I think people restart it. Restarting is what they love. Restart is like caring over your system that’s what I think people come to a point. And matter of the fact while I was talking to you I just restarted my phone because it was a little bit slow. So I think we are all have built this kind of habit when things doesn’t work we just go and restart it before we invest our time in investigating the real cause.
Carlos:    Yeah, that may also be because we don’t know what else to do and so rebooting it make us feel like we’re doing something.
Steve:     Yeah, that’s what I feel when it comes to my cellphone.

Carlos:    Yeah, exactly.

Steve:     Alright, shall we do SQL family?

Carlos:    Let’s do it.

Steve:     Ok, so Pinal how do you keep up with the technology with all the changes that are happening especially with SQL Server and all the great things that are coming out recently.

Pinal:     Wow! This is a tough question. I honestly have a hard time keeping up with all the new things that are coming out. Like for example, I haven’t touch even R Language and R Services, and now there are so many things like PowerGUI is still so far from me. So I have a hard time to learn. I have a hard time to catch up with them. And I think I’m doing pretty bad job at it but there are couple of things which I have made a point to hear. So I hear podcast like yours, and second thing which I do is that I try to read lot of blogs because I figured it out if I’m not learning somebody else is learning so I go out and read lot of different blogs and try to learn that what they are talking about it. And I think if one of the thing which interest me then I would go and double click it. But previously there was a time when I use to open the Microsoft documentation and take each of the word and try to learn that, and dive deeper, demonstration on it. Nowadays, it’s just impossible so I would go out, read blogs, hear the podcasts, see what people are throwing words at it each of it. And I think one of the word will catch me fancy and I will invest time in it. That’s the only way I can learn and when I learn I blog.

Carlos:    Another good point there, right? We can teach somebody and then you can learn it.

Pinal:     Absolutely.

Steve:     I think when you say, when you learn you blog. Well, if you look at your blog that’s pretty apparent that you’ve learned a lot over the last 10 years with the number of posts that you have.

Pinal:     Yeah, thank you! It has been 10 years now. And yeah, I’ve been blogging every single day since I started. So I haven’t missed a single day and 10 years anniversary just happened this November 4th so yeah, I’m very proud and just like as a father would be. Blogs seem to be like something which is a baby and it became my master. It drives me different way now. It motivates me going. And yeah, so blog is like everything. My family run the rounds and feeds my family so it’s a father to us as well. So yeah, blog is playing multiple roles in my family right now.

Carlos:    Yeah, that is impressive. Ten years, everyday for ten years. You’ve set the bar pretty high there.

Pinal:     Thank you! No, it’s a passion. It’s a part of life now.

Carlos:    If you could change one thing about SQL Server, what it would be?

Pinal:     This is amazing question. I have thought about it actually in the past. Two things I want to change. One, first thing I just don’t like the default settings but they are there for some reason. So I think I want Microsoft to educate us what each of the setting does. So they are there in MSDN but when you are installing the product. What if you just stretch max so you could do your parallelism? Now what does it mean actually, right? You have to know. But there is pretty much no help on the installation page, or there is no link, there is no pop up. Nothing and what does it mean? What value I should be keeping? They have a pretty, something I really wish Microsoft can at least give some kind of question mark when you click on it and would go to MSDN page and read base on what each of the version says. This is the one thing I wish I can request the Microsoft team to change it and that would just make things much easier for people to consume. Because otherwise we are just doing searches on internet with each of the word we end up on a lot of bad advices also on internet and I think that’s what one thing I want to change. So these two things are related, one I want Microsoft to educate us about what are the defaults do and second thing I just want them to link us to write and authentic information.

Carlos:    Great point.

Steve:        Ok, so what’s the best piece of career advice that you have ever received.

Pinal:       I see, ok, I have clear answer for this one. Actually years ago, when I was attending one of the summit in United States and I was very much worried about how do I present myself, how do I talk to the people if my content is up to everybody because I see all these greatest people in the world now using amazing content. And I was like I do not know so much things and should I be on blogging, should I be on writing, I do 13 sequels for books. But before that I was so scared to writing one word I would end thinking like what people would think and everything. I think this is the time when I met Arnie Rowland who is from Portland. I expressed my concern to him and he gave me one line advice and said, “If you stop writing about others then and then you will grow.” So I think he said, grow up, write whatever you want to, face up the consequences of what you do, and just improve yourself but do not ever stop thinking what others will say so. That’s what he said. And I think that was so powerful that since that day I have never stop and I keep on going, keep on going about what I’m doing. I definitely improve. I hear everybody I learn and I pay respect to everybody and try to be a person who hears them and improve myself. And I think I learned because Arnie told me that I should be never stopping myself and that’s why the blog is now 10 years. So, yeah, that’s the best career advice and I think I’ll tell everybody out there, “Don’t stop with your passion. Keep on doing but stop and improve yourself and take a moment to fix if you are doing something wrong.”

Carlos:    Great stuff.

Steve:     I think that’s a great point. I know that every time I talk to Arnie it seems like he has always good advice for me so maybe we should have him on the podcast someday on career advice.

Carlos:    Yeah, sounds good.
Carlos:    Pinal, our last question for you today. If you could have one superhero power what it would be and why do you want it?

Pinal:     Oh, I know the answer to this one. And it’s Adrienne Frost, I think she is from the Marvel Universe, and she is associated with X-Men. Adrienne Frost has an amazing psychic power where she can just, I think they call it expert of the psychometry, so she can touch any object and instantly know history of many event concerning to the object. Like I love if I have that one, I touch anybody’s SQL Server and without running any diagnostic I would know what DB was done last evening. I would know which developer has put a malicious code.  I would know what kind of workload change was done in the last week. And I would know that who was the hacker or malicious guy before leaving the job would loop running inside the system. I want this power of Adrienne Frost is in me so when I go consulting I am the man. Every single performance tuning consulting will come to me if I have this particular power by just touching their SQL Server’s Management Studio or Server Node I would know what happened to it in the past with sometime even DMV fails to expose to us.

Carlos:    There you go. You wouldn’t be able to hide from Pinal any longer.

Pinal:     Sweet. Yeah, I really really want that particular power. So I keep on telling my customer that tell us what you did in the last time, last day and then and then I would know what. It was working before, now it’s not, something must have came in between.

Carlos:    Alright. Well, Pinal, thanks so much for being on the show today. We’ve enjoyed it. It’s been great.