मेरे पास शानदार डालने प्रदर्शन के साथ समय-श्रृंखला डेटा की एक अरब से अधिक पंक्तियों की एक तालिका है लेकिन (कभी-कभी) भयानक चयन प्रदर्शन।एसक्यूएल सर्वर: टाइम-सीरीज डेटा प्रदर्शन
टेबल tblTrendDetails
(पी दिखाया गया है का आदेश दिया है):
PK TrendTime datetime
PK CavityId int
PK TrendValueId int
TrendValue real
तालिका लगातार नए डेटा में खींच रहा है और पुराने डेटा के शुद्धिकरण, इसलिए डालने और हटाने के प्रदर्शन तेज़ रहने के लिए की जरूरत है।
SELECT *
FROM tblTrendDetails
WHERE TrendTime BETWEEN @inMinTime AND @inMaxTime
AND CavityId = @inCavityId
AND TrendValueId = @inTrendId
अगर मैं एक ही क्वेरी फिर से अमल (समान समय के साथ, लेकिन किसी भी @inCavityId
या @inTrendId
), प्रदर्शन बहुत है:
जब जैसे कि निम्न एक प्रश्न को क्रियान्वित करने, प्रदर्शन (30 सेकंड) गरीब है अच्छा (1 सेकंड)। प्रदर्शन काउंटर दिखाते हैं कि डिस्क एक्सेस पहली बार क्वेरी चलाने पर अपराधी है।
प्रदर्शन के बिना किसी भी सुधार (प्रदर्शन) को सुधारने या प्रदर्शन को हटाने पर प्रतिकूल प्रभाव डालने के बारे में कोई सिफारिशें? कोई सुझाव (अंतर्निहित डेटाबेस को पूरी तरह से बदलकर) का स्वागत है।
पीके क्लस्टर किया गया है? कोई अनुक्रमणिका? –
@TimLehner हाँ .. पीके क्लस्टर किया गया है। नहीं (अन्य) अनुक्रमणिका। – pilotcam