CRUD objects load lazily, which changes your query count

A 2.6 product was hydrated from the post and its meta in one pass. A 3.0 product reads what it is asked for, which is usually fewer queries and occasionally many more.

$products = wc_get_products( array( 'limit' => 50 ) );

foreach ( $products as $product ) {
    $product->get_price();            // cached with the object
    $product->get_attributes();       // may query
    $product->get_children();         // definitely queries, per product
}

The loop above is an N+1 that did not exist before, and it appears in exactly the place a catalogue template does its work. wc_get_products() primes the post and meta caches for the set; relations and variations are not primed and need loading deliberately. Counting queries on a product listing after upgrading is worth ten minutes.