Running queries on a mirrored database
With database mirroring, you have to create a snapshot of the database in order to run queries against it.

A few problems there:


Snapshots are an Enterprise Edition feature, which put it out of the price range of most shops
Running queries against the snapshot mean the server is in use, so you have to pay full Enterprise Edition pricing on it (it's not a free standby server at that point)
The queries are only up to date as of when the snapshot was taken
To refresh the snapshot, you have to drop it and take another snapshot (which means getting all users out of the snapshot to drop it)


Because of those, running queries against a mirror isn't usually cost-effective. 

If you're willing to stomach the Enterprise Edition price tag, SQL 2012 added Always On Availability Groups, which let you read directly from the secondary with nearly real-time data at a much lower management cost. Still has the EE price tag, though - readable secondaries are an EE-only feature.

Generally speaking, performance tuning is easier than licensing more EE cores ($7k/core USD.)