### Description

![image](https://github.com/elastic/elasticsearch/assets/76245/d0443170-0419-4759-b505-7620ff3d6594)

The execution time of grouping stats by multiple keywords has increased: 1.2 to 1.6 seconds (with doc_partitioning), 4.3 to 6.7 seconds (with shard_partitioning). The equivalent query with the _search API takes 1.8 seconds.

`from nyc_taxis | ... | stats c = count(dropoff_datetime) by trip_type, payment_type, vendor_id`

This regression occurred since July 2, 2023, and I suspect it may be due to the PR: [Support multivalued fields on arbitrary grouping](https://github.com/elastic/elasticsearch-internal/pull/1340).

/cc @nik9000
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/BatchEncoder.java
protected Doubles(int batchSize) {
            super(batchSize);
        }
        /**
         * Is there capacity for this many {@code double}s?
         */
        protected final boolean hasCapacity(int count) {
            return bytes.length() + count * Double.BYTES <= bytesCapacity();
        }
        /**
         * Make sure there is capacity for this many {@code double}s, growing
         * the buffer if needed.
         */
        protected final void ensureCapacity(int count) {
            
            bytes.grow(count * Double.BYTES);
        }
        /**
         * Encode a {@code double} and advance to the next position.
         */
        protected final void encode(double v) {
            addingValue();
            doubleHandle.set(bytes.bytes(), bytes.length(), v);
            bytes.setLength(bytes.length() + Double.BYTES);
        }
    }
    private static class DoublesDecoder implements Decoder {