SQL Server 2012 पर भारी SQL क्वेरी चलाते समय सिस्टम डिस्क स्थान से बाहर चला जाता है


14

मैं SQL Server 2012 के लिए काफी नया हूं, अगर कोई मदद कर सकता है तो मैं आभारी रहूंगा। मैंने SQL Server 2012 में एक विशाल डेटाबेस की एक प्रति को पुनर्स्थापित किया है और मैंने इसके खिलाफ कुछ सरल प्रश्नों को चलाने की कोशिश की है।

मैं एक डेटाबेस 136898115लाइनों की तालिका के खिलाफ चयन क्वेरी चलाने की कोशिश कर रहा हूं । इस SELECTक्वेरी में केवल एक साधारण WHEREखंड है। हर बार जब मैं इस क्वेरी को चलाता हूं, तो यह विफल हो जाता है क्योंकि सिस्टम डिस्क (जहां विंडोज स्थापित है - C:\) अंतरिक्ष से बाहर चला जाता है (इस विभाजन में केवल 6GB मुक्त स्थान है), और मुझे समझ नहीं आता कि क्यों। मैंने अपने tempdb को एक अलग ड्राइव पर परिभाषित किया है, जिसमें 14 से अधिक टेराबाइट्स खाली जगह हैं। बेशक कि मेरा डेटाबेस एक अलग ड्राइव पर भी स्थित है।

मेरा सिस्टम विभाजन अंतरिक्ष से बाहर क्या करता है? क्या यह पेज फाइल है?


2
सिस्टम से बाहर चल रहे im im SSMS चल रहा है, लेकिन इसकी वही मशीन है। वास्तविक SQL सर्वर पर SSMS का उपयोग कर रहा है।
रोज़

2
आम तौर पर, यह SQL सर्वर ( नहीं SSMS) विंडोज बॉक्स पर किसी भी अन्य एप्लिकेशन को नहीं चलाने की सिफारिश की जाती है , या यह सुनिश्चित करने के लिए कि अधिकतम मेमोरी सेटिंग पर्याप्त मुक्त रैम की अनुमति देने के लिए कम पर्याप्त है। मेरा जवाब यहां देखें: dba.stackexchange.com/a/19776/2718
जॉन सेगेल

जवाबों:


12

SSMS क्वेरी से C: ड्राइव को डिफ़ॉल्ट रूप से कैश मिलता है। टूल \ विकल्प पर जाएं। देखें संलग्न किया। अधिक स्टोरेज के साथ इसे दूसरे वॉल्यूम में बदलें और आपको ठीक होना चाहिए।

यहाँ छवि विवरण दर्ज करें


1
यदि आप फ़ाइल के लिए परिणाम चुनते हैं, तो वह है जहाँ डिफ़ॉल्ट रूप से Save As संवाद बॉक्स खुलता है। मुझे नहीं लगता कि SSMS डिफ़ॉल्ट रूप से डिस्क पर परिणाम सेट बचाता है, लेकिन मैं गलत हो सकता है।
जॉन सीजेल

1
आपकी क्वेरी विंडो में आपको मिलने वाले परिणाम मेरी पोस्ट के अनुसार कैश्ड हैं। अपनी ड्राइव की जाँच करें, SSMS में एक बड़ी क्वेरी चलाएँ, और फिर से जाँच करें। यदि आपने अन्यथा निर्दिष्ट नहीं किया है, तो आपको अपने C: ड्राइव पर भंडारण की हानि दिखाई देगी।
एरिक हिगिंस

1
यह सच है। यह मेरे पेज फ़ाइल से संबंधित नहीं है। मैंने अपनी पृष्ठ फ़ाइल को किसी अन्य ड्राइव पर स्थानांतरित कर दिया, और फिर भी मेरा C: ड्राइव अंतरिक्ष से बाहर चला गया।
रोज़व

11

ठीक है, मुझे यह पता चला: एरिक और मैं दोनों सही थे!

  • संवाद में पथ जैसा कि मैंने कहा है, क्वेरी परिणामों को बचाने के लिए सिर्फ एक डिफ़ॉल्ट मार्ग है।
  • क्वेरी परिणाम कर रहे हैं स्थानीय प्रोफ़ाइल में डिस्क (मैं गलत था) के लिए कैश की गई है, लेकिन अस्थायी फ़ोल्डर ( C:\Users\<UserName>\AppData\Local\Tempयहाँ मेरे मामले में)। मैंने जाँच की, और इस कैशिंग को बंद करने का एक स्पष्ट तरीका नहीं है।

तो takeaways हैं:

  • SQL बॉक्स पर सीधे SSMS चलाने से बचें
  • मत SELECT *परिणाम सेट प्रोफ़ाइल फ़ोल्डर में फिट कर सकते हैं जब तक कि SSMS में एक बड़ी मेज से
  • सुनिश्चित करें कि SQL सर्वर अधिकतम मेमोरी सेटिंग को सही तरीके से कॉन्फ़िगर किया गया है (पृष्ठ फ़ाइल वृद्धि के संबंध में इस समस्या में योगदान दिया हो सकता है या नहीं भी हो सकता है)

7

मैं सिर्फ एक ही मुद्दा का सामना करना पड़ा है। उपरोक्त उत्तरों को पढ़ने के बाद, मैंने निम्नलिखित पाया।

उपकरण | विकल्प उत्तर नहीं है। मेरा Y के लिए सेट किया गया था: फिर भी मैंने देखा कि मेरी क्वेरी के रूप में देखा गया था और सी पर अंतरिक्ष: ड्राइव 2.9GB से 5.04MB तक (मैंने क्वेरी को मार दिया था) से पहले।

इसलिए मैंने सोचा कि शायद यह कैशिंग परिणाम है (क्योंकि वे बहुत बड़ी हैं हर पंक्ति के साथ XML का एक बड़ा हिस्सा लौटा है) Temp निर्देशिका के लिए जो जॉन ने कहा है कि हालांकि वह निश्चित नहीं था कि आप इसे कैसे बदलेंगे।

जहाँ मैंने अस्थायी फ़ाइलें लिखी हैं, वहां बदलने के लिए अपने पर्यावरण चर को खोलने और उपयोगकर्ता चर TEMP और TMP (जो दोनों को C: \ Temp पर सेट किया गया था) को Z: \ Temp में लिखने के लिए लिखा था।

मैं पुष्टि कर सकता हूं कि इस परिवर्तन के बाद, मैंने देखा कि क्वेरी मेरी Z: \ Temp निर्देशिका में एक बहुत बड़ी फ़ाइल बनाती है।


जब कोई प्रक्रिया होती है तो बहुत अच्छी जानकारी आपको अपने vm के HD स्पेस को अपग्रेड करने के लिए और नेटवर्क स्टोरेज के लिए बहुत कुछ करना पड़ता है। मैं उत्सुक हूँ, हालाँकि, अगर आपके पास नेटवर्क समस्याएँ टोंटी फ़ाइल स्थानांतरण दर हैं, तो आपके c: \ slow query performace के बाहर जा सकता है?
जिब्राल्टरटॉप

यह 3 साल पहले है और मुझे ठीक से याद नहीं है कि उस समय हालात क्या थे। अब मेरे पास एक लैपटॉप है जिसमें एक दयनीय मात्रा में रैम और प्रसंस्करण शक्ति है जो एक और कहानी है। मुझे पूरा यकीन है कि Z: ड्राइव मेरे VM पर एक और "स्थानीय" ड्राइव थी। सुनिश्चित नहीं हैं कि उन्होंने इसे डी: या ई: लेबल क्यों नहीं किया, लेकिन यह हिस्सा मेरे नियंत्रण से बाहर था। इसलिए, मेरे लिए वास्तव में एक नेटवर्क समस्या नहीं थी।
निक रयान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.