Concatenar eficientemente muchos conjuntos de datos sas

Tengo más de 200 mil pequeños conjuntos de datos con las mismas variables (n <1000 y generalmente n <100) que quiero concatenar en un conjunto de datos maestro. He intentado usar una macro que usa un paso de datos para simplemente iterar a través de todos los nuevos conjuntos de datos y concatenar con el maestro con "establecer maestro nuevo:", pero esto está tomando mucho tiempo. Además, si trato de ejecutarme al mismo tiempo, el paso de datos de ejecución de llamada dice que no tengo memoria en un servidor enorme. Para referencia, todos los pequeños conjuntos de datos juntos son un poco más de 5 Gigs. Cualquier sugerencia sería muy apreciada. Aquí está lo que tengo hasta ahora:

%macro catDat(name, nbr) ;
    /*call in new dataset */
    data new ;
    set libin.&name ;
    run ;

    /* reorder names */
    proc sql noprint;
    create table new as 
    select var1, var2, var3
    from new;
    quit;

    %if &nbr = 1 %then %do ;
        data master;
        set new;
        run;
    %end; 
    %if &nbr > 1 %then %do ;
        data master;
        set master new ;
        run;
    %end ;
%mend;

/* concatenate datasets */
data runthis ;
set datasetNames ;
call execute('%catdat('||datasetname||','||_n_||')');
run;

Resuelto: ver los comentarios de Bob a continuación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta