मैंने ओएस-डिलीट दृष्टिकोण के साथ परेशान करने की कोशिश की।
एक्स-कमांड के साथ हटाने की अनुशंसा नहीं की जा सकती है। यह हमेशा के लिए लिया!
मैं तो एक 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;
आप देख सकते हैं, मैं 9 अलग हटाने आदेशों में मेरी हटाए विभाजित करने के लिए किया था। कारण यह है कि, मैं वाइल्डकार्ड का उपयोग कर रहा हूं, "*", और अंतर्निहित ऑपरेटिंग सिस्टम (एईक्स) इन्हें एक सूची में फैलाता है, जो उसके बाद इसे संभालने के लिए बहुत बड़ा हो जाता है ...
कार्यक्रम मूल रूप से एक डिलीट बनाता है प्रत्येक 9 फाइल समूह "temp [1-9] *। sas7 *" के लिए कमांड और कमांड जारी करता है।
4000 डेटा टेबल बनाने के लिए cmjohns उत्तर से मैक्रो फ़ंक्शन बनाने का उपयोग करके, मैं इस दृष्टिकोण का उपयोग करके केवल 5 सेकंड में उन्हें हटा सकता हूं।
तो एक प्रत्यक्ष ऑपरेटिंग सिस्टम हटाएं, जैसा कि मैंने अपेक्षा की थी, बड़े पैमाने पर हटाने का सबसे तेज़ तरीका है।
स्रोत
2009-04-30 13:22:04
साथ शुरू होता है को नष्ट करेगा आप * सकता है * बस भौतिक एसएएस तालिका हटा दें एक ऑपरेटिंग सिस्टम कॉल के साथ फाइलें (और इंडेक्स)। मुझे नहीं पता कि यह कैसे करता है, लेकिन मुझे उम्मीद है कि एक कच्ची फाइल सिस्टम-डिलीट सबसे तेज़ है। –