Just wanted to send out a quick note that I’ll be presenting via LiveMeeting for the New Jersey SQL User Group next Tuesday, February 16th at 6:40 PM EST. I’ll be doing my Policy-Based Management talk. I will post the link to the presentation here when I get it.
I know this is a bit late but you know what they say, better late than never! This month’s meeting was quite exciting as we had a big-name speaker come in. This month we had Kevin Kline (Blog | Twitter) of Quest Software come in and speak to us about Disk I/O Tuning on SQL Server.
Typically our meetings kick off with announcements and general discussion but because we had Kevin this month (he was in town for SQLSaturday #21) we let Kevin have as much time as possible so we skipped our normal routine and got right to it! First off Kevin is a fantastic speaker and has a real easy-going presentation style which I really enjoyed. Many times during the presentation felt more like a dialogue as he engaged the audience on many topics. One of the great things about a speaker engaging the audience as such is that more nuggets of information can come out that sometimes even the presenter wasn’t aware of. For instance during one exchange between Kevin and Jonathan Kehayias (Blog | Twitter) something came up (pardon me for taking horrible notes and not remembering exactly what it was!) but it was something new to Kevin. The meat of the presentation (Slide deck can be found here) was geared much towards explaining the different RAID types and their respective benefits within a SQL Server implementation. Other great disk information such as partition alignment (which you DEFINITELY want to do as it nets you up to 30-40% performance gain!), which perfmon counters you should focus on to baseline/monitor your disk performance, SQL file configurations (i.e. multiple data files), SAN tips/tricks/gotchas, and more. One really cool tidbit that Kevin shared with us, in regards to seeing real-world performance examples, is the online MMORPG EVE Online is actually back-ended with SQL Servers all on solid state drives (SSD)! How cool is that? Here’s an article on it and how they benefitted from using this technology.
Overall it was a great meeting and a huge “thank you” to Kevin for speaking at our group this month! If you ever get the chance to catch a Kevin Kline presentation I can’t recommend it enough. If you’re going to PASS Summit this year Kevin will be presenting The Ultimate Free SQL Server Toolkit (Database Administration) as well as Team Management Crash Course (Professional Development). If the Team Management one is the same presentation as the one he gave during the 24 Hours of SQL PASS event I HIGHLY recommend you attend that one as there are some great bits of information in there!
Next month on November 17th our presenter will be Jonathan Kehayias presenting Understanding SQL Server Memory Management. Visit the user group website and register to attend.
Looks like August is definitely shaping up to be a busy one for me! First I’ll be presenting at SQL Saturday #16 in South Florida. That takes place on Saturday, August 8th. I’m really excited for this event since it’ll be the first SQL Saturday I’ve presented at.
Following that I’ll be heading over to Melbourne the following week on Thursday, August 13th for the Spacecoast SQL Server User Group meeting. At both locations I’ll be presenting my Policy Based Management 101 session. Then to finish off my month the following week I’m moving to a new place so August will definitely be an active one. Speaking of which, check out and participate in Active August! I’ll be writing up a series blog posts about my #activeaugust experience as well.
Tonight was our monthly SQL Server User Group meeting and our featured presenter this evening was Plamen Ratchev (Blog) presenting on performance tuning and query optimization. First off, he has an awesome accent. I think he’s of Croatian descent from what he mentioned but he rolls his R’s something fierce. I should’ve had him say the phrase “reporting services” a bunch of times just to make me giggle. Anyways, I’m way off topic…
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil
This was a good point to open with in that if you try to focus on only performance in the development phase you’re more than likely going to perform an epic fail. He then went on to show the differences between being reactive and proactive in terms of performance tuning. His take was that in Europe their development processes focused more on being proactive and trying to take care of issues before they become major problems as opposed to trying to run around putting out fires all the time like many a DBA (myself included) is forced to do on a daily basis. In an interesting story he relayed to us he told us about how he had come to the U.S. and pitched a European software that allowed a major car manufacturer to improve their processes. The software would basically alert you if anything in production fell “out of the norm” and would advise actions on how to fix it. The American company had a different approach to their process. They basically hired a team of high-priced consultants to come in for a week, measure everything nuts to bolts about what’s wrong in the production process, produce a report and leave (whether or not problem got fixed). What surprised me most was that he told us the manager told him if there’s a problem they pretty much just build another assembly line somewhere else rather than fix current issue. If you’re wondering why they need Federal bail-out money, this story should give you a slight clue.
The presentation continued on with things such as common performance issues you’re likely to find such as inefficient queries, retrieving too much data, inefficient or missing indexes and a few other things. This was a nice list to see for both devs and DBA’s alike so everyone is aware of these common mistakes. This lead to topic of problematic designs such as the “one-true lookup” table issue. This is when rather than normalizing your data someone decides its easier to just throw everything in to one large table and add columns as needed later on. I can see some of you cringe when you read that since you’ve probably seen that in production somewhere at some point.The surprising thing that came out of this example though (to me anyways) was that sometimes this setup actually makes sense for very specific applications such as a simple survey or a medical application that is only storing straight facts (i.e. patient monitor). Another oldie but a goodie is mismatched data types on join columns or filters. While this may work without a problem, when you throw a heavy work load at something like this you’ll see performance tank because behind the scenes the data engine is having to do lots of implicit conversions to process that query for you. So remember that little tidbit next time you’re planning with your devs and database developers.
The next interesting thing I learned was regarding data type optimization. Do you know what the one of the fundamental differences is between VARCHAR and NVARCHAR besides one taking up twice as much space as the other? NVARCHAR handles multiple collations while VARCHAR is more for single so if your application is only going to be delivered via a single, default collation then stick with using VARCHAR.
I could go on and on but needless to say this was an extremely insightful and useful presentation. Another user group member, Ron Dameron (Twitter), noted in Twitter this evening
…seen this deck twice now. Learned new stuff both times. Thx Plamen
If you ever get a chance to attend one of Plamen’s presentations at a live event I highly encourage you to do so as he’s a brilliant guy and presents well. If he’s not coming anywhere near you, you can still check out his presentation stylings by watching his videos over at JumpstartTV. In closing here’s some book recommendations he threw out at the end of his slide deck. Basically this is just an excuse for me to use the cool Carousel feature from Amazon!
A few weeks back I presented at the Tampa SSUG meeting on Policy Based Management with SQL 2008. Unfortunately due to sickness and apparently my own laziness, I never got around to doing a follow-up post or posting my slide deck. First the slide deck:
As a warning the deck itself is a bit sparse with how-to info as the meat of my presentation is in demo format. Given that fact, I will start a series of blog posts covering Policy Based Management and how/what you can do with it. Keep an eye out in the coming weeks for those! In the meantime a big thank you for everyone that attended the Tampa presentation, hopefully I’ll be giving this same presentation again at SQL Saturday South Florida in August.
Just wanted to post that tomorrow night I’ll be presenting on Policy Based Management in SQL 2008 at the Tampa SQL Server User Group meeting. The details of the meeting are below, hope to see you there!
Topic: Policy Based Management
Speakers: Jorge Segarra
Location: Franklin Templeton Buidling ( Directions )
Jorge Segarra will be presenting Policy Based Management. We will be learning an overview of this powerful new feature in SQL 2008 and how you can leverage it to help manage your existing SQL environment. This will include plenty of demos, best practices and Q&A so by the end you should be able to walk away ready to take control of your SQL Servers!
Jorge has been a SQL DBA for over 5 years with experience with SQL 2000, 2005 and 2008. Some of his other specialties include virtualization, specifically on the VMware platform. He is currently the Database Administrator for University Community Hospital (www.universitycommunityhospital.org) in Tampa. Check out his blog at: http://sqlchicken.blogspot.com.
Food and drinks will be provided by Jane Powell of CIBER, Inc. CIBER is a pure-play international system integration consultancy and outsourcing company with superior value-priced services and reliable delivery for both private and government sector clients. CIBER’s services are offered globally on an outsourced, project, or staffing basis, in both custom and ERP package environments, and across all technology platforms, operating systems and infrastructures.
As usual, SWAG from the group’s stash will be raffled. SWAG will include Office 2007, books and other items.
So Monday night was the monthly SQL BI user group meeting. Attending these meetings is always interesting for me since I’m not a BI-guy (leave out the gutter jokes please…) so I definitely learn something new. I also leave with a raging headache since I have trouble wrapping my head around some of this crazy stuff. I tip my hat off to you guys that specialize on the BI side of SQL Server. I’ve come to realize that its kind of like Texas Hold ‘Em poker vs Omaha. When it comes to SQL we’re all playing the same game with very different rules. Anyhow, I digress, back to the recap.
We started off with a general “what’s going on” discussion in the world of tech/SQL/etc. We talked about some of the big stuff that happened that day such as Microsoft’s numerous announcements during their E3 presentation, the public launch of Microsoft’s new search engine: Bing, the current state of job market (looking better, contact Stever Turner as he has quite a few SQL jobs available), Microsoft’s Second Shot offer (expires at the end of this month), next month’s SQL User Group meeting (I’ll be presenting on Policy Based Management), and the announcements regarding SQL Server 2008 R2 and “Gemini”, which turned out to be a very hot topic for the night! For the record our group is looking for more info and demos on Gemini so if you’re available for a talk and want to visit sunny Tampa drop Rob Hatton a line!
Speaking of Rob, he was our featured presenter this month on the topic of Designing Slowly Changing Dimensions. The discussion was based around the Kimball Methodology which if you’re not familiar with then you are highly encouraged to go grab a copy of The Data Warehouse Toolkit by Ralph Kimball. On the whole I found the presentation really good but after awhile some of the concepts start flying over my head.Some things I did walk with is that when you’re doing a data warehouse project some things you need to realize is that 80% of your effort will go towards the ETL, 5-10% to the cube and the remaining to the relational stuff. Another little tidbit I picked up is that apparently 3/4 of the source data that the BI pros in the room have dealt with to load into the staging portion of the DW are CSV/txt files which surprised me. Then again I’m a DBA so I believe everything should live in nice relational databases! I don’t mean to skimp on the details of the presentation mostly because I wouldn’t do it justice and I’d probably be wrong about the details. Rob’s slide deck should be available on the user group’s website soon and when it is I’ll link it here.
As an added bonus, and due to our lengthy discussion and excitement about SQL 2008 R2 and “Project Gemini”, Robert Skoglund from Microsoft, managed to show us a quick 6 minute video clip from Donald Farmer’s presentation on Gemini. Unfortunately it was without audio so we couldn’t get detailed explanations of the features. If you’re curious about Gemini check out this link from Donald Farmer’s blog that has everything you need to know.
We kicked off the night with a discussion I led about social networking. As most discussions tend to lead, the topic dominator was Twitter. A few of us shared how Twitter has managed to help us in various facets of our job be it job opportunities, problem resolution or just general networking. A few of us in the audience are already on Twitter such as Jonathan Kehayias, Jack Corbett, Pam Shaw, and Steve Turner. Besides Twitter we also covered sites such as LinkedIn. LinkedIn was specifically mentioned as helping people find jobs. One member in attendance shared with us that he actually landed his current position because of Linked in which shows that social networking does work! One new thing I did learn out of this conversation was something called MSDN Social which I’ll have to check out. Thanks to Travis Page for pointing this one out to us.
Next up was Jack’s talk on SQL Server Profiler basics. I thought I knew enough about profiler but boy was I wrong! What’s funny is that Jack asked the room how many of us currently use profiler as part of our DBA arsenal. Only about a quarter of those in attendance raised their hands. He followed up by asking how many of us knew that SQL Server 2005/2008 had a trace running by default on install and even less hands went up. This is pretty surprising considering its a feature specifically built in to make it easier for us DBA’s to do performance analysis. Considering Extended Events is the next “big thing” in this arena coming out of the Redmond camp for SQL Server I think either we need to blog more about these sorts of things or Microsoft better come up with a Mojave Trace profiler and say “surprise, its really SQL 2005!”. Anyhow back on track…another thing I learned was that the profiler takes wildcards. Yes, that’s right, you trace on ‘ADv%’ or ‘%acon’. I thought this was pretty cool.
Another thing that’s new in 2005 Profiler (thankfully, since this particular issue drives me nuts) is the ability to pause a trace mid-stream, modify your trace values, and continue the trace without losing any of your previous data already collected. Speaking of pausing, a button that I just never noticed all this time was right up top (Auto Scroll) that stops the profiler from skipping to the latest data. I don’t know how many times I’ve been staring at the data scrolling by, see what I think is a problem query, click on it and by the time I do the screen rolls over two or three times so I have to go back and hunt for that line. In the words of Charles Barkley, “just turrr-ible”.
During the presentation portion where we were discussing dissecting deadlock issues, someone mentioned that one time they had a deadlock issue but it wasn’t showing up properly when they traced it using the 2005 profiler. Jonathan Kehayias enlightened us that mutli-deadlock victims won’t show in 2005 profiler and that this situation is common in parallelism issues (which this guy had). The 2008 profiler, on the other hand, does handle that issue and display it properly. The next tip I picked up and can’t wait to use was the fact that with 2005 profiler you do correlation of data between profiler and performance monitor. In order to do this you need to have started and ended both with scheduled times. Another note is the Counter Log from perfmon needs to be in Binary File type in order for this to work. Once you have your traces done go to File menu, and save your profiler trace to a file. Then open that trace file. Once its open you should be able to go to File menu and select Import Data. Navigate to where you saved your perfmon trace and open it. Once you have selected it you will see a graph overlayed underneath your trace. Now if you click anywhere on that graph you will get a line that shows exactly which point in your profiler trace that performance spike happened so you can see exactly which SQL is causing (if any) problems! Click on the image above for an example of this.
Overall I thought this was a great meeting. We had a packed house and good discussion and tips. Personally I feel I even got a little more out of it than usual thanks to social networking. Prior to Jack’s arrival for our meeting he and I have been interacting on Twitter so it made it a little easier to meet him for the first time which was pretty cool. Next month I’m slated to do a presentation on Policy Based Management so I’m pretty excited for that. Another exciting announcement is that apparently we’re getting Kevin Kline to come speak at our group which should be really awesome.
Hey all just a reminder that tonight is the VMware User Group meetinghere in Tampa. The meeting will be held at the Tampa branch of the Southwest Florida Water Management District starting at 5pm. Myself and Glenn Trail will be presenting on our VMware environment here at the hospital and I will also be covering our virtualized database servers.