Today I had to remember the steps for using relog. If you’ve never heard of relog, stay with me. It’s a tool for merging PerfMon files, and also for extracting smaller data sets from Perfmon. I still love PerfMon friends, I admit it. It’s been a staple for understanding performance on a Windows Server since I’ve started in IT. But I haven’t used relog in forever so I completely forgot the commands I needed.
The problem
I provided a PerfMon template to a customer a few weeks ago and asked them to start capturing data. I requested that they roll over the file daily, but that request got lost in the shuffle. They manually stopped and restarted the data collector intermittently, so when they sent me the file to review data from an issue they had over the weekend, it was almost 5GB in size. Oof. I loathe opening large PerfMon files in the UI because it takes a long to load. This is where using relog came in because I only needed to look at about an hour’s worth of data.
Finding the command I needed
I did a quick Google search looking for the syntax, and landed on a post from my friend Andy Galbraith, Handling Perfmon Logs with Relog. It’s a useful post if you want to merge multiple files, and I recommend it if you need that. I needed to separate out my data.
My very first SQL Server presentation was on the topic of baselines, and I used to demo relog. I had to have the code somewhere right? Nope. I did find my old presentation and wow…that needs updating. Then I searched my old blog and found a post where I had the syntax. Yay past me!
However, no one else would ever find that post so I thought I’d share the syntax here. Also, if you go to the official relog documentation the syntax is there, but it’s not quite correct.
Using relog to extract data based on a date range
The parameters are -b for begin time and -e for end time. And for both parameters the documentation states:
Do you see a space between the year and the hour? Me neither. This syntax fails:
relog SQLskills_DataCollector.blg -b 3/21/202019:00:00 -e 3/21/202020:00:00 -o SQLskills_March21.blg
But if I add a space between the date and the time:
relog SQLskills_DataCollector.blg -b 3/21/2020 19:00:00 -e 3/21/2020 20:00:00 -o SQLskills_March21.blg
It works:
And with that, I’m off to analyze some data!