### 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/test/java/org/elasticsearch/compute/operator/MultivalueDedupeTests.java
}
    private void assertHash(
        BasicBlockTests.RandomBlock b,
        IntBlock hashes,
        long hashSize,
        Set<? extends Object> previousValues,
        LongFunction<Object> lookup
    ) {
        Set<Object> allValues = new HashSet<>();
        allValues.addAll(previousValues);
        for (int p = 0; p < b.block().getPositionCount(); p++) {
            assertThat(hashes.isNull(p), equalTo(false));
            int count = hashes.getValueCount(p);
            int start = hashes.getFirstValueIndex(p);
            List<Object> v = b.values().get(p);
            if (v == null) {
                assertThat(count, equalTo(1));
                assertThat(hashes.getInt(start), equalTo(0));
                return;
            }
            List<Object> actualValues = new ArrayList<>(count);
            int end = start + count;
            for (int i = start; i < end; i++) {
                actualValues.add(lookup.apply(hashes.getInt(i) - 1));
            }
            assertThat(actualValues, containsInAnyOrder(v.stream().collect(Collectors.toSet()).stream().sorted().toArray()));
            allValues.addAll(v);
        }
        Set<Object> hashedValues = new HashSet<>((int) hashSize);
        for (long i = 0; i < hashSize; i++) {