Ho provato a giocare con l'approccio OS-delete.
L'eliminazione con il comando X non può essere consigliata. Ci sono voluti per sempre!
Allora ho provato con il comando di sistema in un datastep:
%macro delos;
data _null_;
do i=1 to 9;
delcmd="rm -f "!!trim(left(pathname("WORK","L")))!!"/temp"!!trim(left(put(i,4.)))!!"*.sas7*";
rc=system(delcmd);
end;
run;
%mend;
Come potete vedere, ho dovuto dividere il mio eliminazioni in 9 comandi di cancellazione separati. Il motivo è che sto usando i caratteri jolly, "*", e il sistema operativo sottostante (AIX) li espande in un elenco, che diventa troppo grande per essere gestito ...
Il programma costruisce fondamentalmente una cancellazione comando per ciascuno dei nove filegroup "temp [1-9] *. sas7 *" e invia il comando.
Utilizzando la funzione di creazione macro dalla risposta di cmjohn per creare 4000 tabelle di dati, è possibile eliminarle in soli 5 secondi utilizzando questo approccio.
Quindi, l'eliminazione diretta del sistema operativo è il modo più rapido per eliminare la massa, come previsto.
fonte
2009-04-30 13:22:04
Si * potrebbe * basta eliminare la tabella SAS fisica file (e indici) con una chiamata al sistema operativo. Non ho idea di come funzioni, ma mi aspetto che un filesystem raw-delete sia il più veloce. –