प्रोक एसक्यूएल चरण अलग-अलग प्रभावी रूप से अलग-अलग डेटा कदम हैं, इसलिए एक अर्थ में आपको हमेशा एसएएस से समान जानकारी मिलती है। आप जो पूछ रहे हैं वह प्रभावी ढंग से यह पता लगाने के लिए है कि 'नाम का चयन' बनाम 'empid' बनाम कितना समय लगता है।
डेटा चरण में किसी व्यक्तिगत कथन का समय प्राप्त करने का कोई सीधा तरीका नहीं है, लेकिन आप पता लगाने के लिए डेटा चरण कोड लिख सकते हैं। समस्या यह है कि डेटा चरण पंक्ति-वार निष्पादित किया जाता है, इसलिए यह प्रोसी एसक्यूएल स्टीमर विवरण से वास्तव में काफी अलग है; डेटा चरण में जो कुछ भी आप करते हैं, वह आपके द्वारा बहुत लंबा समय लेगा, जब तक कि आप हैश टेबल लुकअप की तरह कुछ और जटिल नहीं कर रहे हों। डेटा को पहले लिखना और डेटा दूसरे में पढ़ने में काफी समय लगता है।
यदि आपकी चिंता है तो आपके पास लंबे डेटा चरणों की समस्या निवारण के लिए कुछ विकल्प हैं। विकल्प MSGLEVEL = मैं आपको इंडेक्स उपयोग, विवरण मर्ज इत्यादि के बारे में जानकारी दूंगा, जो उपयोगी नहीं हो सकता है अगर आपको यकीन नहीं है कि कुछ चीजें करने में लंबा समय क्यों लग रहा है (अधिक जानकारी के लिए एसएएस दस्तावेज में http://goo.gl/bpGWL देखें)। आप अपनी खुद की टाइमस्टैम्प लिख सकते हैं: है कि आप उपयोग की ज्यादा नहीं दिखाएंगे क्योंकि सबसे डेटा कदम पुनरावृत्तियों बहुत समय नहीं लगेगा, लेकिन अगर आप कुछ फैंसी कर रहे हैं यह मदद कर सकता है
data test;
set sashelp.class sashelp.class;
_t=time();
put _t=;
run;
बाधाओं रहे हैं। आप कुछ अंतराल पर केवल समय प्रिंट करने के लिए सशर्त बयानों का उपयोग भी कर सकते हैं - जब FIRST.ID पर उदाहरण के लिए आईडी द्वारा काम की जाने वाली प्रक्रिया में;
आखिरकार जो सूचनाएं पहले से ही नोट्स से प्राप्त होती हैं वह सबसे उपयोगी है। प्रोसी एसक्यूएल में आपको STIMER जानकारी की आवश्यकता होती है क्योंकि एसक्यूएल एक साथ कई चीजें कर रहा है, जबकि एसएएस आपको चरण-दर-चरण सब कुछ करने देता है। में
proc sort data=a; by ID; run;
proc sort data=b; by ID; run;
data x;
merge a(in=a) b(in=b);
by id;
if a and b;
run;
कि आप उन कदमों (दो प्रकार के और मर्ज) में से प्रत्येक की अवधि के बारे में जानकारी प्राप्त होगी: -: उदाहरण लेकिन एसएएस में यह होगा
PROC SQL;
create table X as select * from A,B where A.ID=B.ID;
quit;
एक कदम है एसएएस, जो स्टिमर आपको बताएगा उतना ही है।
+1 अच्छा जवाब। आप यह स्पष्ट करना चाहते हैं कि हैश टेबल लुकअप बहुत अधिक तत्काल हैं (वे तब तक लेते हैं जब तक यह हैश को एक मान लेता है जो मूल रूप से हैशिंग एल्गोरिदम के रूप में कुछ भी नहीं है), लेकिन हैशटेबल को लोड करने में कुछ समय लग सकता है । –