Word is getting out at the office about me using a Mac, and at least once a week now, someone comes over to my cube to ask a few questions. Here are the most common ones:
Q: Is that your personal computer, or your work one?
It’s my work one, and it’s the only computer I use.
Q: Is that a normal Microsoft keyboard & mouse, and a normal Dell flat panel?
Yes. These days, Apples use the same peripherals as regular laptops.
Q: So how’s it different from a normal laptop?
Aside from OSX, the engineering of the laptop itself is just awesome. The DVD burner loads via slot – no gimmicky sliding plastic tray. The power adapter has a magnetic connection that just pops loose if it snags on something. The keyboard glows at night, so you can see each key and its corresponding letter/number. The tiny webcam above the monitor blows everybody away. Everything you want is built in, instead of being optional, and since it’s a standard piece of hardware, all of the drivers work perfectly from the get-go.
Q: How much did it cost?
Around 10-15% more than a similarly equipped Dell laptop on our corporate discount, with the exception of add-on memory. Apple marks up memory like crazy, so it makes sense to get that from Crucial.com or another high-quality memory vendor. We get our Microsoft licensing for Windows and Office through our Microsoft Enterprise Agreement, so there’s no extra cost for software licensing over and above what we’d pay on a Dell.
Q: It runs Windows and Office?
Yep, there’s a Mac version of Office and Outlook (called Entourage). Since it can run both Apple OS X and Microsoft Windows simultaneously using Parallels or VMware, it can do everything I need to do at the office.
Q: Are you on the domain?
My Windows virtual machine is, but my Mac isn’t. I could add it to the domain, but I didn’t see any advantages to that, so I’m an island for now. I can access everything on the domain, though – the Mac just prompts for my username & password once, and saves it in my keychain for reuse each time I try to access a domain resource again.
Q: Do you really use that many Mac programs?
Surprisingly, yes. When I first started to switch, I vowed to try to switch over to Mac entirely. I do my email, remote desktop, Word, Excel, presentations, network diagnostics (ping, traceroute, etc), instant messaging, iTunes, and more all in the Mac side of things. I do run Windows to use SQL Server 2005 Management Studio, VMware VirtualCenter,
and IBM Director, and I couldn’t do my job (or at least as good of a job) without those tools. On the weekends, though, I take my Macbook Pro home and I don’t even start Windows on it. There’s even a Mac client for our VPN.
Q: What about that iLife, iDVD, iPhoto, iWeb, GarageBand stuff?
I don’t actually use any of that stuff. I blog using the Performancing tools for Firefox, and I manage my photos with Flickr, but that’s about as close as I get to creativity. I admire those artsy folks, but I’m not one of them.
Q: How long did it take before you were productive?
What the hell are you talking about? I’ve been productive for years! Oh, wait, you mean with the Mac, sorry. It took about two weeks, and I couldn’t have done it without the excellent book Mac OS X Support Essentials. It answers a lot of tech support questions that you’ll experience along the way – things that seem obvious in Windows, but are just handled a little differently in OS X. Not saying OS X is better or worse, just a few things are different, like where your files are stored or how to set an IP address. This book is aimed at technical users who need to solve specific problems, not a how-do-I-get-started approach.
Q: How long is the battery life?
I turn the display brightness way down when I’m working off the grid, so I get around 3-3.5 hours.
Q: What are the drawbacks?
- There’s no connector for a docking station, so I have to plug/unplug the same six cables every time I bring the machine into the office. (Power, audio, USB, ethernet, video, USB2 hard drive).
- Microsoft Entourage (the Outlook equivalent) doesn’t do a very good job of detecting free/busy time in the company calendar, or scheduling meeting rooms as resources. Fortunately I don’t schedule many meetings myself.
- Syncing with a handheld is easier than Windows – but only as long as you have a supported handheld. My Cingular 8125 isn’t supported, but thankfully I use Direct Push with our Exchange server anyway, so that doesn’t really matter to me. It might matter for some folks, though.
- Since only 3 of the 10,000 employees use Macs, it’s much harder to get peer support. For example, the authentication on our Cisco wireless access points doesn’t seem to like Macs, and the network guys don’t have the time to find out why. I’m guessing I could figure it out if I spent enough time on it, but I don’t roam with my laptop anyway (I use my 8125 for meeting notes) so I haven’t taken the time either.
Q: Would you recommend buying one?
For home use – yes, absolutely. For office use – a qualified yes, but check your applications first. If you spend most of your day in a Windows app like, say, the SAP GUI, then it probably makes sense to stick with Windows.
Database administrators need to know each SQL Server’s weakest link so we know where to focus their hardware budgets and time. On any given server, we need to know what the slowest component is, and where it’ll pay off to invest hours and dollars. This is performance tuning, and the first place to start is by using Performance Monitor.
Performance Monitor, or Perfmon, measures performance statistics on a regular interval, and saves those stats in a file. The database administrator picks the time interval, file format, and which statistics are monitored. After the stats are gathered over a period of time (hours or days), we can do analysis by opening the results in Excel and setting up some basic formulas.
Perfmon isn’t just for SQL Server tuning: system administrators use it to monitor performance on Windows itself, Exchange, file & print servers, and anything else that can run into bottlenecks. As a result, it’s easy to find Perfmon information online, but it’s not always specific to SQL Server. Since every application has its own set of statistics, it helps to get SQL-related tips.
Perfmon Tutorial Video
At the SQLBits conference in Great Britain, I gave an hour-long presentation explaining why you should use Perfmon, what counters are important, how to pair it with Profiler traces, and more:
If you liked that video, check out our list of free SQL Server videos.
Setting Up Perfmon for SQL Server Tuning
On your desktop or laptop (not the SQL Server itself), go into Control Panel, Administrative Tools, Performance. The first thing that comes up is a 1990′s-looking line chart with a few basic performance stats on your workstation itself. Interesting, but not what we’re after.
On the left side, expand Performance Logs and Alerts, and click on Counter Logs. Counter Logs let us pick a set of performance counters and log them to a file periodically. One counter log is listed by default, but we’re going to add a new one. Right-click on Counter Logs and click New Log Settings. Name it with the name of your database server, because each server should have its own log settings. We could theoretically build a single counter log for all of our database servers, but then anytime we want to run the counter log against one of our servers to test its performance, it will log data for ALL servers, and that’s not usually how we want to do performance tuning. After typing in a name, we can start setting up the counters we want to log.
The Basics of SQL Server Perfmon Counters
Click the Add Counters button, and change the computer name to point to the SQL Server name instead of your workstation’s name. (If you have multiple SQL Server instances on the machine, don’t worry about it, that doesn’t apply here.) After typing in the server name, hit Tab, and the workstation will pause for a few moments. It’s gathering the list of performance objects available on that server. Each server will have different lists of performance objects depending on what software is installed on that server: for example, SQL Server 2005 offers a different set of counters than SQL Server 2000.
In the Performance object dropdown, choose the “Memory” object. The list of counters will change. Select the “Pages/sec” counter, and click the Add button. It will seem like nothing happened, but try clicking the Add button again. You’ll get an error saying that the counter was already added. It’s not exactly an elegant user interface, but it works. Technically. Now scroll up to the “Available MBytes” counter, highlight it, and click Add. Those are the only two memory counters we’re going to monitor for now.
In the Performance object dropdown, choose the “Processor” object, and in the counters list, highlight the “% Processor Time” counter. Notice that in the right hand window, we now have more instances to choose from. We can track the % Processor Time statistic for each individual processor, or for all of them combined (_Total). Personally, I like to highlight each individual processor, and then click Add. I don’t find the _Total statistic useful because it’s simply an added number combined from all of the individual processors. On a 4-CPU box (single cores, no hyperthreading), that means our _Total statistic can be from 0 to 400. However, 100 can mean two different things: it could mean that each processor is running 25% utilization, or it could mean that one processor is pegged at 100% while the rest are twiddling their thumbs waiting for work. It could also mean any other number of combinations, like two processors at 50%. Therefore, the _Total number usually gives me more questions than answers, so I don’t bother logging it. Highlight all of the processor instances except _Total, and click the Add button.
In the Performance object dropdown, choose Physical Disk, and choose the “% Disk Time” counter. Notice that again on the right side window, we get multiple instances; this time, we get one per physical disk. In performance terms, physical disk means one disk shown in Computer Management’s Disk Management tool. One physical disk may have multiple partitions, each with its own drive letter, but for performance tuning, we want to know how hard that one physical disk is working.
This one “physical disk” may have a bunch of actual physical drives, like in RAID systems. However, Windows isn’t quite smart enough to know exactly how many drives are in the RAID array, so the term “physical disk” is a little misleading here.
Highlight all of the physical disks in the instance list (again, leave off the _Total instance) and click the Add button. Then, in the counter list, choose the “Avg. Disk Queue Length” counter and add it too.
The Best SQL Server Performance Monitor Counters to Analyze
Now that you’ve got the hang of adding counters, here’s the full list we need to add, including the ones mentioned above:
- These are listed OBJECT first, then COUNTER
- Memory – Available MBytes
- Paging File – % Usage
- Physical Disk – Avg. Disk sec/Read
- Physical Disk – Avg. Disk sec/Write
- Physical Disk – Disk Reads/sec
- Physical Disk – Disk Writes/sec
- Processor – % Processor Time
- SQLServer: Buffer Manager – Page life expectancy
- SQLServer: General Statistics – User Connections
- SQLServer: Memory Manager – Memory Grants Pending
- SQLServer: SQL Statistics – Batch Requests/sec
- SQLServer: SQL Statistics – Compilations/sec
- SQLServer: SQL Statistics – Recompilations/sec
- System – Processor Queue Length
After adding those, click the Close button, and we’re back to the counter log setup window. Under “Sample data every”, the default should be 15 seconds, and that’s fine. In the “Run As” entry, type in your domain username in the form domainname\username, and click the Set Password button to save your password. This lets the Perfmon service gather statistics using your domain permissions – otherwise, it tries to use its own credentials, and they probably won’t work on the remote server.
Click on the Log Files tab, and change the log file type to Text File (Comma delimited). This lets us import it into Excel easier. Click on the Configure button, and set the file path. I save mine in a file share called PerformanceLogs so that I can access it remotely via a mapped drive, and so that I can share it with other users who want to know how their server is performing. Click OK, and click OK again, and you’ll be back at the main Performance screen listing the counter logs.
If all went well, your counter log is now running. To make sure, right-click on your new counter log’s name, and the Start option should be grayed out. If it’s not, most likely there was a permissions problem with the username & password you used. Click Properties, and try setting the username & password again.
Let Perfmon run for a day or two to gather a good baseline of the server’s activity. It’s not that invasive on the SQL Server being monitored, and the in-depth results will pay off. The more data we have, the better job we can do on analyzing the Perfmon results.
Turning SQL Server Perfmon Logs Into Pretty Excel Spreadsheets
After Perfmon has run for a day or two, go back in and right-click on the counter log and click Stop. That will cease monitoring of the database server.
Open the results CSV in Excel. It’s going to look ugly at first:
This is the data from Perfmon. Each column represents one of the metrics, and each row represents one time period. It’s hard to see that with the way it’s currently formatted, but we’ll solve that. Time to put some lipstick on this pig. We’re going to:
- Get rid of the half-empty row #2 and cell A1
- Format the dates
- Format the numbers
- Clean up the headers
- Add formulas across the top (my Secret Sauce part)
Excel pros can figure out how to do this, but for the folks who don’t spend too much time in spreadsheets, I’ll explain how:
Getting Rid of the Half-Empty Row and Cell A
Row #2 in this screenshot only has numbers in the first few columns. That’s typical for Perfmon – when it first starts monitoring a server, it takes it a round of checks before it’ll gather all of the data. Highlight row 2 and hit the Delete key on your keyboard. (I figured we’d start easy.)
Then delete the contents of cell A1, which we don’t need.
Format the Dates in Column 1
Click on cell A2 and look at the formula bar, and you’ll see that it’s a date – it’s just that Excel picks the wrong format to display it. Highlight all of column A (by clicking on the “A” button at the top of the column). Right-click on that A button and click Format Cells. Pick a Date format that includes both the date and the time, and click OK.
At that point, the column will probably show all “#######” entries, which just means it’s not wide-enough. Double-click on the line between the A and B columns, and Excel will autosize the column.
Format the Numbers
In our spreadsheet, some of the numbers have tons of stuff after the decimal place and it’s hard to read. Highlight all of the columns except A (our dates), and right-click and Format Cells. Choose the Number format, zero decimals, and check the box for Use 1000 Separator.
Some of our numbers will have valid data less than zero, but we’ll fix that later. Right now we’re just getting the basics cleaned up.
At this point, your spreadsheet should look like this:
Now let’s solve that mystery row of headers.
Cleaning Up the Headers
In row #1, notice how all of the cells in my screenshot start with \MYSERV. That’s because the server is called MYSERVERNAME. (Well, not really, but I faked it for this demo.) Click on one of those cells, and you’ll see the full text that Perfmon saves in the header, like “\MYSERVERNAMEMemoryAvailable MBytes”.
Do a find & replace by hitting Control-H. In the “Find What” box type your server name with two backslashes, like \MYSERVERNAME. In the “Replace with” box, erase everything. We want to just delete everywhere that says \MYSERVERNAME. Click Replace All, and Excel should tell you how many replacements it made.
Now do the same for these strings, but be careful to note which ones have spaces:
- Paging File
- SQLServer:Buffer Manager
- SQLServer:General Statistics
- SQLServer:Memory Manager
- SQLServer:SQL Statistics
Now you’ll be able to tell a little more about what’s in each header, but to make it better, change the font size to 8 for that header row. Then highlight all of the columns and make them wider – not terribly wide, but just wide enough that you can see most of the headers for easier analysis. It’ll end up looking like this:
Getting better. Before the next step, go ahead and save the spreadsheet in Excel format, because the calculations will be slow.
Add Formulas Across the Top
Here comes the secret sauce: we want formulas across the top to quickly summarize our findings. It’ll be easier to understand by looking at the final desired result first:
In this particular example, don’t be fooled by the zeroes in columns C through E – that’s because this server didn’t actually have any activity for those metrics.
Start by right-clicking on the Row 1 button at the far left of the screen and click Insert, and repeat that process seven times so that we’ve got seven empty rows at the top.
Then type in the labels in cells A2-A6 to match my screen shot.
In the B column, put in the formulas. In my typed examples below, I assume that your data goes from row 9 to row 100, but you’ll want to change that 100 number to wherever your last data row is.
- B2 (Average) will be =AVERAGE(B9:B100)
- B3 (Median) will be =MEDIAN(B9:B100)
- B4 (Min) will be =MIN(B9:B100)
- B5 (Max) will be =MAX(B9:B100)
- B6 (Std Deviation) will be =STDEV(B9:B100)
Finally, the icing on the cake: hit Control-Home, then move your cursor to cell B9, which should be your first cell with data. Hit Alt-W-F-Enter, which should Freeze Panes. That way we can move around our spreadsheet while we still see the dates on the left and the formulas & headers across the top.
Now, we’ve got a gorgeous spreadsheet that’s easier to roam around and analyze.
Analyzing the Performance Monitor Results to Find SQL Server Bottlenecks
Now for the detective work! There are a lot of smart people out there who have some great ways of interpreting Perfmon results. My favorite is the Microsoft SQL Server Customer Advisory Team (SQLCAT), who published two fantastic blog posts that sum up what counters to look at, and what they mean:
- Top 10 SQL Server 2005 Performance Issues for Data Warehouse and Reporting Applications
- Top SQL Server 2005 Performance Issues for OLTP Applications
So now that we’ve established how the smart people do it, I’ll tell you how I do it, ha ha ho ho.
Look for Obvious CPU Bottlenecks
First, look at the Processor Queue Length for CPU pressure. If this number is averaging 1 or higher (except during the SQL Server’s full backup window if you’re using backup compression), this means things are waiting on CPUs to become available.
I’m suspicious when this number is over 1, because it often means that people have installed other software on the SQL Server such as applications or web sites. That’s a problem. If you get pushback from management saying that they don’t want to buy new servers, point out that two CPUs of SQL Server Enterprise licensing cost around $50-60k – which would pay for a separate server for the web app. If you can eliminate applications from the SQL Server, then you don’t have to use as much CPU power, and less CPUs mean less licensing costs.
There are more in-depth Perfmon metrics that you can add to your capture if you see the Processor Queue Length showing up, but for junior DBAs, the first thing I would recommend is simply remote desktop into the SQL Server. Right-click on the taskbar, click Task Manager, and click on the Processes tab. Check the box that shows processes for all users, and then click on the CPU column to sort the CPU percentage from high to low. Sit and watch it for a minute or two. Which processes are using CPU power? If it’s SQLServer, then we need to do more research, but there’s a good chance it’s another application, and we need to get that app off this server. Generally speaking, enabling hyperthreading on a SQL Server is not going to fix that kind of a problem.
Look for Obvious Memory Problems
Look at the % Usage metric, which monitors how much of the page file Windows is using. Generally speaking, you don’t want to see a SQL Server swapping memory out to disk. If this number is averaging 1% or more, then this server would benefit from more memory or setting SQL to use less memory.
1% doesn’t mean that money should be spent on more memory right away: in cost-sensitive shops, every server hits the page file sooner or later. It just points to a possible issue, and keep an eye on it.
On the Memory – Available MBytes statistic, look for fluctuations of a couple hundred megabytes or more. If that’s happening, then either the SQL Server’s memory is being adjusted dynamically (probably a bad idea for performance) or users are actively logging into the SQL Server via remote desktop and running software. Correlate these fluctuations with disk activity: when available memory drops, is disk activity also increasing? Is this disk activity affecting the page file drive? If so, use this as a demonstration to people using remote desktop – show them that this is why people shouldn’t remote desktop into database servers.
If the Memory – Available MBytes dips below 100mb, that’s an indication that the operating system may be getting starved for memory. Windows may be paging out your application to disk in order to keep some breathing room free for the OS.
Look at Disk Metrics Last
The reason we don’t look at disk performance metrics first is because memory problems can trigger disk problems. If a SQL Server doesn’t have enough memory, or if the SQL Server account doesn’t have the necessary permissions to lock pages in memory, then disk activity may be artificially high on the page file drive.
As we examine the disk numbers, make a mental note of which drive has the page file – and there may be multiple page files as well. Also, find out if one physical drive array is shared by multiple drive letters. This is especially important for servers that boot from SAN: the boot drive may contain the page file, and that boot drive may be on a shared set of spindles with several drive letters. Heavy page file activity will slow down access to all of the affected drive letters in Windows.
Another caveat: mount points. If the shop uses mount points, a drive letter may be broken up into several sets of physical drive arrays. If you don’t know what a mount point is, then you’re probably not using them, and you can ignore that advice.
Want more help? Send us your Perfmon results.
If you’re stumped, set up your Perfmon data in Excel as described here, zip it up, and send it to us at Help@BrentOzar.com. Tell us a little about the server and the kinds of problems you’re having, and we’ll be glad to take a quick look and see if anything jumps out at us.
DBAs need an in-office computer to run overnight and weekend performance logs, traces, and long-running queries. For example, let’s say you need to run a long series of maintenance queries to rebuild indexes over the weekend. You shouldn’t be remote-desktopping into your production servers to run this query: instead, you just need a simple workstation that you can leave logged-in, with the desktop locked, that runs the query.
If you were assigned a laptop as your primary workstation, then you’ll need an alternate desktop computer or an existing development server (never a production server). It doesn’t have to be 24/7 reliable or high-powered – a previous generation desktop or a virtual machine is fine. It should be a server that you and only you manage. Otherwise, someone else will restart the server at the most inopportune times, thereby shutting off your traces and performance logs.
Picking the Operating System
If your company uses SQL Server 2000, then this DBA machine should not run Windows Vista, since the 2000 tools don’t run on Vista. You can manage SQL Server 2000 using the 2005′s Management Studio, but sometimes managing a 2000 server is easier with the 2000 tools.
If the machine runs a workstation version of Windows (Windows 2000 Pro, Windows XP, Windows Vista) be aware that only one person will be able to remote into this machine at a time. If it runs a server version of Windows, then two people (or three, depending on how savvy they are) can remote into the machine. If you’ve got two or more database administrators, either use a server, or give each DBA their own workstation for management.
If the security folks ask tough questions about whether you need to be an administrator on the box, thank them for doing their job, and agree with them. (Hopefully they’ve been this tough about your production servers as well.) The only rights you need are the ability to remote-desktop in and run Perfmon and SQL. You don’t need to install anything else, start & stop services, etc.
Applications to Install
It does not need to be a SQL Server. It only needs the management tools installed, like 2000′s Enterprise Manager and 2005′s Management Studio. When you run traces (capturing queries and events from a SQL Server), you will need to save those events to another SQL Server, but it doesn’t have to be this machine. If you don’t have a development server, then – well, you’ve got other problems, but let’s start by fixing them and installing SQL Server 2005 Development Edition on this machine. During installation, change the database to point to a different drive, not the C drive. If you leave them on the C drive, and you save a large trace to this machine, it’s easy to run out of drive space and crash your machine altogether. That would not be good. If the databases are on the D drive, for example, you can still fill up the drive and crash SQL Server, but at least the entire machine won’t crash.
On this server, set up a shared folder called PerformanceLogs, and give read-only access to everyone. When you run performance logs, set them up to be saved in this directory. That way, when other users (developers, junior DBAs, network staff) need to interpret the performance numbers, you can point them to that share and they can always grab the latest copies without your assistance.
Install the free version of LogMeIn.com‘s remote control application. This helps you remote control the machine from your house even when the company’s VPN is down or when you’re at a location where you can’t get the VPN software installed. I can’t say enough good stuff about LogMeIn – and in fact, I wrote a separate blog post about LogMeIn.com too.
Once you’ve got your always-on workstation, here’s a couple of articles that you can read for your next step:
- Performance Monitoring with Perfmon – Perfmon is free, and you can use it from your always-on workstation to investigate performance problems with database servers.
- Free SQL Server tools – a list of utilities that you’ll want to install on your always-on workstation to do performance tuning, alerting, and so on.
Once a year, I like to read back through my blog and recap some of the highlights from the past twelve months. It helps me recognize the things I’ve achieved, the things I goofed up, and the ways that I’ve changed over time.
January: Our Second Cruise
Erika and I sailed on a ten-day Princess cruise through the southern Caribbean. I love the cruising experience, and it’s one of my vacation highlights that will stay with me for the rest of my life. At the time, when I wrote my trip notes about the cruise, I concluded that Erika and I would rather have flown to one particular island and stayed there through the duration. That’s probably still true, but it’s not like cruising is a bad way to spend a vacation.
I think about this cruise at least once a week: some of the photos are up on my wall at work, I use some as desktop wallpaper, and I’m planning my next cruise, this time with Mom.
I’m surprised that I haven’t gone snorkeling since the cruise. I live near the Keys, for crying out loud – I should get up off my behind and go snorkeling down there at least once a month.
The cruise ship experience convinced me that I don’t want to buy my own boat. I like the idea of cruising on my own sailboat, but the horror stories I’ve read about accidents and problems pretty much put an end to that. While I enjoyed attending the Miami Boat Show in February, it was strictly as a dreamer.
February: Pushing GTD, Remember The Milk on my coworkers
I believe firmly that David Allen’s Getting Things Done is the best way for information workers to manage their work and their lives. I started using RememberTheMilk.com to manage my GTD to-do lists, and in February I blogged about RTM and GTD. I can’t imagine doing IT work without these two tools, and they’re the reason that I leave the office every day between 5pm and 5:30pm, guilt-free and upbeat.
March: Changed Companies
Back in October of 2005, I was hired by Adjoined Consulting to work as a data warehouse administrator for Southern Wine & Spirits. In March, Adjoined got bought out by the much larger (and mostly Indian-based) Kanbay Consulting. The whole consulting thing left a really bad taste in my mouth, so in March, I gave my notice and took another job in Miami. At the last minute, Southern made me an offer to stick with them and become their overall DBA, and I accepted because I really liked the people and the company.
I enjoy toying around with gadgets, and with my new job came a new phone – a Cingular 8125. It’s a combination of a PocketPC and a phone. I had a lot of frustrations with it initially, blogged about it here and here, and by the end of the year I completely relied on it for everything from directions to blogging to photos. The high point was probably during a visit to my grandparents in Naples: Grandma wanted to go to a knitting supply store, but couldn’t remember exactly where it was. I pulled it up online, got directions from Google Maps, and guided us right to it.
One of my favorite features of the new phone is the ability to shoot a picture, send it to Flickr, and send it to my Blog along with comments, like this one:
That helps me capture spontaneous, amusing moments. I like that. Hard to put a price on that.
Speaking of walking Ernie, the new phone really helps me keep on top of what’s going on in the world and with SQL Server. Every morning, I walk Ernie for about 45 minutes, and during that time I’m able to read up on all of my favorite news sites and blogs via the phone. By the time we get back to the house, I’m up to speed on what’s going on, and I spend less time catching up in the office. It’s a great way to start each day.
July: Became a Mac User
Southern humored my lifelong wish to use an Apple Mac, and bought me a 15″ Macbook Pro. Now that they run off Intel processors and can run Windows in a window, I can completely do my job on an Apple. This fact still amazes me.
Initially, my coworkers thought I’d get frustrated and give up quickly. One of them flat out told me that I’d be back in Windows within two weeks. While I’ve had my ups and downs with the Macbook Pro, I still love it, and I’d never go back to a Windows-only PC. I do the majority of my non-SQL work inside OS X, but I still have to drop down to a Windows window in order to do my SQL Server work. I make a great living off Microsoft software, and I’m thankful for it, but I really enjoy using the Mac for everything else.
Looking forward, I keep hearing rumors about an upcoming Apple phone. Supposedly the first generation one won’t be a smartphone: it will make phone calls, shoot photos and act as an iPod, but no email sync. That pains me. I’d love to have a phone with the famed Apple usability, but I’m not sure that I’m ready to part with my morning blog-reading routine yet or my phone’s full keyboard, which makes emails a joy.
Summer: Light Hurricane Season
The closest we came to a hurricane was Tropical Storm Ernesto. Other than that, all quiet on the hurricane front. A great relief after last year’s multiple-hurricane debacle.
I still don’t understand how newcomers to South Florida can justify the house prices, taxes and insurance, though. Then add in the cost of evacuations, storm shutters, generators, etc., and this place is a financial sinkhole. I love Miami, but how are we supposed to buy a house with these economics? It’s easy to weather a hurricane when you’re renting, but the stress level has to be something else entirely when your money is actually tied up in these homes. If my condo’s windows blew out and my stuff got soaked, big deal – the repairs won’t cost me anything. But the owner, ouch.
September: My Last Fast Food Meal
I gave up on McDonald’s after a bad experience and a revelation. Since then, I think I’ve eaten fast food maybe twice – once on accident without realizing what I was doing, and the second time with Erika when we were desperate for something fast and cheap. I don’t miss it at all. For 2007, I’m considering giving up caffeine, too. I’ve known for years that it has some bad attitude side effects, and I don’t like being grumpy. Caffeine definitely makes me grumpy, especially in the quantities that I enjoy drinking it, so I’ll be switching to decaf.
Fall: Started to Run, Changed Blog
Looking back, in the light of giving up McDonald’s, it almost sounded like I was on a health kick. Trust me, these items are unrelated. The key to me starting to jog was the Apple Nike+iPod kit pictured here. I loved how it turned jogging into metrics-gathering: it helps us geeks visualize our runs as something measurable, something quantifiable, something that can be clearly improved and gauged.
Pretty soon, at the urging of my coworker Ben, I’d ran my first 5k. I’ve signed up for my next one in January with him as well.
In October, I switched my blog platform from MovableType to WordPress. I’m glad I did – it’s easier to use, feels more powerful, and helps me do a lot of interesting things that I wouldn’t otherwise have had the time to do. Now, for example, I do audioscrobbling: I use Last.FM to automatically post my recently listened tracks on the blog. I doubt any of you are even mildly interested in that, but it gives a more complete picture of me as a person. I find that kinda nifty, and since it doesn’t cost anything and doesn’t require any work on my part, I’m all for it.
During 2006, I blogged less than I have in the past. I attribute that to my newfound in-office job. It’s not that I have less free time, it’s just that I spend that free time differently. Instead of writing a blog entry to recap a funny incident or a problem, I talk it over with my in-office coworkers instead. The end result is that I share fewer day-to-day amusements with you, dear reader.
Another side effect is that my blog entries have started to skew towards the professional, documenting more SQL Server experiences. I’m in a much larger company now (over 10,000 employees instead of under a hundred) so I get exposed to more interesting, large-scale SQL Server setups. I have to document some of this stuff to pass on to my junior DBA and to friends in the same line of work, so it’s just as easy to copy/paste that stuff into here and help strangers as well.
Erika, Ernestina and I finished up the year this weekend with a great mini-vacation in the Keys at a friend’s house. We’ll spend New Year’s Eve vegging out at home, maybe walk down closer to the pier to get a better view of the annual fireworks. Our condo isn’t quite up high enough to see them.
Summing It Up
Whoa: this year, I’ve become a jogger, a Mac user and a snorkeler. I’m happy with that. I didn’t start this year with goals to do any of those things – they just sort of happened along the way as a result of being willing to try new stuff and take on new challenges.
For next year, in my professional life, I want to become a better database administrator, focusing on data mining and analytics.
In my personal life, I want to snorkel more, run a 10K, and maybe get up to Michigan for my fifteen year class reunion.
Stay tuned. I think I’m getting the hang of this “life” thing.
Erika, Ernestina and I are spending the Christmas weekend at a friend’s second home in Key Largo. This place is fantastic – exactly what Erika and I originally envisioned Florida to be. The town has lots of character, great (and relatively inexpensive) restaurants, and water everywhere. As I type this, Ernie and I are sitting outside, watching boats putter around the bay. It’s hard to relate to the views on the Weather Channel.
We have already established the fact that little Ernie loves balconies and porches, so she’s in heaven here. The place has a huge wraparound porch with plenty of room for lounging. A few minutes ago, Ernie got her first rocking chair experience, and that freaked her out. She kept moving back and forth, trying to balance herself on the chair. She looked like a landlubber stepping onto a boat for the first time. If she had arms, she would have been holding them out in the air, saying, “Whoa, there.”
Today, we’re taking a road trip down to Key West.Â We’ve lived here a year, and this is our first time down to the Keys.Â I’m in love already.Â I hear bad things about Key West being too tourist-y, but Key Largo seems like the perfect balance between middle-of-nowhere and civilization.Â It only took about an hour to get here from our place.Â We’re definitely going to be back.
A huge Menorah made of seashells sits among palm trees strung with white lights. An unlit Christmas tree in the background seems almost like an unloved afterthought.