2011-03-09 7 views
8

मैं इन दिनों कुछ एसक्यूएल ट्यूनिंग कर रहा हूँ और परीक्षण के दौरान एक अजीब एसक्यूएल लगता है:निष्पादन परीक्षण करते समय SQL सर्वर के "पुनर्निर्माण आंकड़े" से कैसे बचें?

SELECT StatMan([SC0],[SC1], [SB0000]) 
FROM (SELECT TOP 100 PERCENT [SC0],[SC1], step_direction([SC0]) over (order by NULL) AS [SB0000] 
     FROM (SELECT [tableA] AS [SC0],[tableB] AS [SC1] 
      FROM [dbo].[url] WITH (READUNCOMMITTED,SAMPLE 3.408654e+000 PERCENT) 
      ) AS _MS_UPDSTATS_TBL_HELPER 
    ORDER BY [SC0],[SC1], [SB0000] 
    ) AS _MS_UPDSTATS_TBL 
OPTION (MAXDOP 1) 

लगता है कि यह कुछ "पुन: अनुक्रमणिका" या एसक्यूएल सर्वर के अनुसार, "पुनर्निर्माण" कुछ db सूचकांक कर रही है। लेकिन मेरा सवाल यह है कि परीक्षण से पहले प्रत्येक टेबल के लिए "रेनडिएक्स" के अलावा लंबे भार परीक्षण के दौरान हम इससे कैसे बच सकते हैं।

और यह एसक्यूएल 16862ms का उपभोग करेगा क्योंकि मेरी तालिका में पर्याप्त पंक्तियां हैं। और मेरे परीक्षण में कई कार्रवाई शामिल हैं।

+1

यह मेरे लिए एक ऑटो अपडेट आंकड़े पूछताछ की तरह दिखता है। आप इसे पूरे डेटाबेस या व्यक्तिगत अनुक्रमणिका के लिए बंद कर सकते हैं लेकिन आपके अन्य प्रश्नों का सामना करना पड़ सकता है। –

उत्तर

6

यह आंकड़े अद्यतन करने से प्रतीत होता है।

आंकड़े अद्यतन करना सामान्य उत्पादन वातावरण में होगा? यदि ऐसा है, तो उत्पादन वातावरण को प्रतिबिंबित करने के लिए लोड परीक्षण नहीं होना चाहिए, आंकड़े अपडेट भी करें?

AUTO_UPDATE_STATISTICS विकल्प को बंद करने के लिए, इच्छित तालिका (ओं) पर sp_autostats का उपयोग करें (http://msdn.microsoft.com/en-us/library/ms188775.aspx देखें)।

+0

उत्तर के लिए धन्यवाद! मैं प्रदर्शन env पर चल रहा हूँ। यह वास्तव में सहायक है! – Vance

+1

धन्यवाद। याद रखें कि, यदि आप AUTO_UPDATE_STATISTICS को बंद करते हैं, तो आप ऑफ-पीक समय के दौरान मैन्युअल अपडेट आंकड़े चला सकते हैं। – Enull

+0

यदि मेरा परीक्षण एसक्यूएल केवल "क्वेरी" के लिए है, तो क्या मुझे परीक्षण से पहले/बाद में सांख्यिकी अद्यतन करना होगा? – Vance

0

कुछ भी बदलने से पहले, मैं एसक्यूएल प्रोफाइलर के साथ इसे चलाने देता हूं और फिर परिणामों का विश्लेषण करने के लिए ट्यूनिंग सलाहकार प्राप्त करता हूं। यह टेबल डिज़ाइन में कुछ अक्षमता पा सकता है। इसके अलावा कुछ सुंदर निर्दोष चीजें इसे प्रभावित कर सकती हैं: उदा। "बहुत अधिक इंडेक्स" या जीआईआईडी का उपयोग उस तालिका पर पीके के रूप में करते हैं जिसमें चयन से अधिक आवेषण होते हैं ...

यदि सभी अक्षमताएं हल हो जाती हैं, और आपके पास अभी भी प्रदर्शन हिट है, तो हाँ, आप ऑटो-आँकड़े बंद कर सकते हैं और चोटी के समय पर आँकड़े अपडेट हो जाते हैं। लेकिन फिर आपको उत्पादन पर ऐसा ही करना चाहिए, जैसा कि पहले कहा गया है।

संबंधित मुद्दे

 संबंधित मुद्दे