It's pretty fast, from my previous tests it can query 5500 mailboxes in approx 40 minutes
I have a snippet of code that I feel may help you speed up your query:
# Clear Host
Clear-Host
$Mailboxlist = Get-Mailbox -ResultSize 10 -WarningAction SilentlyContinue
$Job_1 = $MailboxList | ForEach-Object -AsJob -Parallel {Get-EXOMailboxStatistics -Identity $PSItem.Identity}
While ($Job1.State -eq 'Running') { $Total_1 = $Job_1.ChildJobs.Count $Count_1 = ($Job_1.ChildJobs.State | Where-Object {$ -eq 'Completed'}).Count Write-Progress -Activity "Scanning Mailbox Stats" -Status "Scanning: ($Count_1 of $Total_1)" -PercentComplete ((($Count_1) / $Total_1) * 100) -ID 1 }
$MailboxStats = Receive-Job -Job $Job_1 $Null = $Job_1 $MailboxStats Write-Progress -Activity "Scanning Mailbox Stats" -Status "Ready" -ID 1