(My presentation can be found here:
Here's ~72 minutes of activity logged in 1 second increments, captured in both a binary blg file and a flat file csv format. 553 columns including the timestamp.
That's more than a 6 times difference in size!
For that reason *if* I use a binary log file at all, I put in a limited set of counters. This is a typical counter set that I may use when capturing perfmon in a blg binary file.
There's only a few reasons I personally use a binary file for logging perfmon, anyway. One is a timing issue. If logman is used to start logging perfmon, and the data collector is started *before* the SQL Server service is started, the only format that can capture the SQL Server specific counters like the list above: blg. That can be a pain in the neck when trying to capture perfmon on a Windows cluster, or around a maintenance window where server restart is expected.
Binary format is kinda nice because as soon as its opened it opens in a graphing interface.
But with a long counter list... that's just a mess.
I do a lot of work in Excel. Years ago I used tsv format mainly for logging perfmon. But then somewhere along the line, Excel stopped recognizing tsv as a native filetype for itself. I messed around changing associations for a while... ending up giving up and using csv format from then on.
So if I do get a large blg binary format perfmon capture, I relog it. Like this...
This is the relog in a cmd.exe while its in flight.
And when its complete...
Here's the results of the relog.
So the csv from relogging the blg is still larger than the csv that was captured in csv format. But way smaller than the original blg itself.
And once its in csv format, I can make all of my crazy graphs in Excel 😊
Here's a reference for logman to capture perfmon logs.
And a reference for relog if you want to change log format, narrow the time window, pull out a subset of counters, etc.