Чтобы определить, сколько памяти у вас доступно для использования SAS
data _null_;
mem = getoption('xmrlmem');
put mem=;
run
это дает смысл количеству записей, которые вписываются в хэш-объект, см. начиная с хэш-объектов от Secosky и Bloom.
Если ваша хеш-таблица слишком широкая, и именно по этой причине у вас закончилась нехватка памяти, попробуйте разбить ее на несколько более узких таблиц, чтобы они вписались в память и несколько раз выполнили хеш-соединение. Он по-прежнему может быть быстрее обычного соединения. Вы также можете попробовать изменить свойство hashexp: оператора DECLARE в определении хэш-соединения.
There is a nice article about differnt joining techniques from NESUG 2007
Не видя данных, кода или не имея хотя бы приблизительного представления о том, какие у вас ресурсы и данные, трудно помочь или предложить обходной путь.