*Why is it that the second query does not qualify for minimal logging?* Minimal logging is *available* for the second query, but the engine chooses not to use it at runtime. There is a minimum threshold for `INSERT...SELECT` below which it chooses not to use the bulk load optimizations. There is a cost involved in setting up a bulk rowset operation, and bulk-inserting only a few rows would not result in efficient space utilization. *What can be done to improve the situation?* Use one of the many other methods (e.g. `SELECT INTO`) that does not have this threshold. Alternatively, you might be able to rewrite the source query in some way to boost the estimated number of rows/pages over the threshold for `INSERT...SELECT`. See also [Geoff's self-answer][1] for more useful information. --- *Possibly interesting trivia:* `SET STATISTICS IO` reports logical reads for the target table [only when bulk loading optimizations are not used][2]. [1]: http://dba.stackexchange.com/a/117089/1192 [2]: http://stackoverflow.com/a/30656174/440595