you typically route blank/null break keys around your match.
if you group up 500,000 rows into one large break group… depending on how much memory is available (and logical record length) … you’ll run out of ram and hang.
the max break group size setting is used to catch these before finding out about them the hard way. I usually have this set at 10k. If your break group is that large you may want to change it to reduce the number of compares.