मुझे पता है कि SQL टेबल पर एक INSERT किसी भी कारण से धीमा हो सकता है:
- टेबल पर INSERT ट्रिगर्स का अस्तित्व
- लागू की जाने वाली बाधाओं के बहुत सारे (आमतौर पर विदेशी कुंजी)
- जब तालिका के मध्य में एक पंक्ति डाली जाती है तो पृष्ठ खंडित सूचकांक में विभाजित होता है
- सभी संबंधित गैर-संकुलित अनुक्रमणिकाओं को अद्यतन करना
- मेज पर अन्य गतिविधि से अवरुद्ध
- खराब IO प्रतिक्रिया समय लिखें
- ... कुछ भी मैं याद किया?
मैं कैसे बता सकता हूं कि मेरे विशिष्ट मामले में कौन जिम्मेदार है? मैं पेज स्प्लिट्स बनाम गैर-क्लस्टर इंडेक्स अपडेट बनाम सब कुछ के प्रभाव को कैसे माप सकता हूं?
मेरे पास एक संग्रहित खरीद है जो एक समय में (एक अस्थायी तालिका से) लगभग 10,000 पंक्तियों को सम्मिलित करता है, जिसमें प्रति 10k पंक्तियों के बारे में 90 सेकंड लगते हैं। यह अस्वीकार्य रूप से धीमा है, क्योंकि यह समय-समय पर अन्य स्पिड का कारण बनता है।
मैंने निष्पादन योजना को देखा है, और मैं एफके लुकअप से INSERT CLUSTERED INDEX कार्य और सभी INDEX SEEKS देखता हूं, लेकिन यह अभी भी मुझे यह सुनिश्चित करने के लिए नहीं बताता है कि इसमें इतना समय क्यों लगता है। कोई ट्रिगर नहीं है, लेकिन तालिका में मुट्ठी भर FKeys हैं (जो ठीक से अनुक्रमित प्रतीत होते हैं)।
यह एक SQL 2000 डेटाबेस है।