यह पुराना प्रश्न अधिक व्यापक उत्तर देने के योग्य है। इनमें से कुछ अन्य उत्तर / टिप्पणियों में यहां उल्लेखित हैं, अन्य ओपी की विशिष्ट स्थिति के लिए काम कर सकते हैं या नहीं भी कर सकते हैं, लेकिन एसक्यूएल से एसिंक्रोनस रूप से संग्रहीत प्रोक्स कॉलिंग की तलाश में दूसरों के लिए काम कर सकते हैं।
बस पूरी तरह से स्पष्ट होने के लिए: TSQL नहीं करता है (खुद से) अतुल्यकालिक रूप से अन्य TSQL संचालन शुरू करने की क्षमता है ।
इसका मतलब यह नहीं है कि आपके पास अभी भी बहुत सारे विकल्प नहीं हैं:
- एसक्यूएल एजेंट नौकरियां : कई एसक्यूएल नौकरियां बनाएं, और या तो उन्हें वांछित समय पर चलाने के लिए शेड्यूल करें, या "मास्टर कंट्रोल" संग्रहित खरीद का उपयोग करके उन्हें एसिंक्रोनस रूप से शुरू करें
sp_start_job
। यदि आपको उनकी प्रगति को प्रोग्रामिक रूप से मॉनिटर करने की आवश्यकता है, तो बस यह सुनिश्चित करें कि प्रत्येक कस्टम JOB_PROGRESS टेबल को अपडेट करें (या आप यह देख सकते हैं कि क्या उन्होंने अभी तक अनजाने फ़ंक्शन का उपयोग करके ग्रेगरी ए। लार्सन द्वारा इस उत्कृष्ट लेखxp_sqlagent_enum_jobs
में वर्णित किया गया है)। आपको जितनी अलग-अलग प्रक्रियाएँ चलानी हैं, उतनी ही अलग-अलग नौकरियां बनानी होंगी, भले ही वे अलग-अलग मापदंडों के साथ समान संग्रहित चल रहे हों।
- SSIS पैकेज : अधिक जटिल अतुल्यकालिक परिदृश्यों के लिए, एक साधारण शाखा कार्य प्रवाह के साथ SSIS पैकेज बनाएं। SSIS उन कार्यों को अलग-अलग स्पिड में लॉन्च करेगा, जो एसक्यूएल समानांतर में निष्पादित करेगा। SQL एजेंट कार्य से SSIS पैकेज को कॉल करें।
- कस्टम एप्लिकेशन : अपनी भाषा (C #, Powershell, आदि) की भाषा में एक सरल कस्टम ऐप लिखें, जो उस भाषा द्वारा प्रदान किए गए अतुल्यकालिक तरीकों का उपयोग कर रहा हो। प्रत्येक एप्लिकेशन थ्रेड पर SQL संग्रहित खरीदारी को कॉल करें।
- OLE स्वचालन : SQL में, उपयोग
sp_oacreate
और sp_oamethod
एक नई प्रक्रिया शुरू करने के लिए इस आलेख में वर्णित के रूप में एक दूसरे को संग्रहीत संग्रह बुलाते हैं , यह भी ग्रेगरी ए।
- सेवा ब्रोकर : इस लेख में सेवा ब्रोकर , अतुल्यकालिक निष्पादन का एक अच्छा उदाहरण है ।
- सीएलआर समानांतर निष्पादन : सीएलआर आदेशों का उपयोग करें
Parallel_AddSql
और Parallel_Execute
जैसा कि इस लेख में एलन कपलान (SQL2005 + केवल) द्वारा वर्णित है ।
- अनुसूचित विंडोज कार्य : पूर्णता के लिए सूचीबद्ध, लेकिन मैं इस विकल्प का प्रशंसक नहीं हूं।
यदि यह मैं होता, तो शायद मैं सरल परिदृश्यों में कई SQL एजेंट नौकरियां, और अधिक जटिल परिदृश्यों में एक SSIS पैकेज का उपयोग करता।
आपके मामले में, SQL एजेंट नौकरियों को कॉल करना एक सरल और प्रबंधनीय विकल्प की तरह लगता है।
एक अंतिम टिप्पणी : SQL पहले से ही जब भी यह कर सकता है व्यक्तिगत संचालन को समानांतर करने का प्रयास करता है। इसका मतलब है कि एक दूसरे के बाद एक ही समय में 2 कार्य चलाना कोई गारंटी नहीं है कि यह जल्द ही समाप्त हो जाएगा। यह देखने के लिए सावधानीपूर्वक परीक्षण करें कि क्या यह वास्तव में कुछ भी सुधारता है या नहीं।
हमारे पास एक डेवलपर था जिसने एक ही समय में 8 कार्यों को चलाने के लिए DTS पैकेज बनाया। दुर्भाग्य से, यह केवल एक 4-सीपीयू सर्वर था :)
* डिफ़ॉल्ट सेटिंग्स मान लेना। यह सर्वर की अधिकतम डिग्री के समानांतरवाद या एफिनिटी मास्क को बदलकर या MAXDOP क्वेरी संकेत का उपयोग करके संशोधित किया जा सकता है।