मेरे पास एक प्रश्न है;धीमी एसक्यूएल प्रदर्शन
SELECT COUNT(Id) FROM Table
तालिका में 33 मिलियन रिकॉर्ड हैं - इसमें आईडी पर कोई प्राथमिक कुंजी नहीं है और कोई अन्य सूचकांक नहीं है।
क्वेरी में 30 सेकंड लगते हैं।
वास्तविक निष्पादन योजना से पता चलता है कि यह क्लस्टर्ड इंडेक्स स्कैन का उपयोग करता है।
हमने तालिका का विश्लेषण किया है और पाया है कि यह इस लिंक में दिखाए गए पहले प्रश्न का उपयोग करके खंडित नहीं है: http://sqlserverpedia.com/wiki/Index_Maintenance।
कोई भी विचार क्यों है कि यह क्वेरी इतनी धीमी है और इसे कैसे ठीक किया जाए।
तालिका परिभाषा:
CREATE TABLE [dbo].[DbConversation](
[ConversationID] [int] IDENTITY(1,1) NOT NULL,
[ConversationGroupID] [int] NOT NULL,
[InsideIP] [uniqueidentifier] NOT NULL,
[OutsideIP] [uniqueidentifier] NOT NULL,
[ServerPort] [int] NOT NULL,
[BytesOutbound] [bigint] NOT NULL,
[BytesInbound] [bigint] NOT NULL,
[ServerOutside] [bit] NOT NULL,
[LastFlowTime] [datetime] NOT NULL,
[LastClientPort] [int] NOT NULL,
[Protocol] [tinyint] NOT NULL,
[TypeOfService] [tinyint] NOT NULL,
CONSTRAINT [PK_Conversation_1] PRIMARY KEY CLUSTERED
(
[ConversationID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
एक बात मैं देखा है डेटाबेस 1 एमबी मात्रा में विकसित करने के लिए सेट कर दिया जाता है।
यह एक लाइव सिस्टम है, इसलिए हम किसी भी विचार के साथ क्या खेल सकते हैं में प्रतिबंधित है?
अद्यतन:
ठीक है - हम उचित कॉलम पर नए गैर क्लस्टर सूचकांक जोड़ने तो यह एक महत्वपूर्ण मुद्दा नहीं रह गया है द्वारा ब्याज की वास्तविक क्वेरी में प्रदर्शन में सुधार किया है।
SELECT COUNT
अभी भी धीमा है - इसे NOLOCK संकेतों के साथ प्रयास किया - कोई अंतर नहीं।
हम सभी सोच रहे हैं कि यह ऑटोग्राउथ सेट के साथ एक बड़ी संख्या के बजाय 1 एमबी पर सेट करने के लिए कुछ है, लेकिन हैरान है कि इसका प्रभाव है। डिस्क पर एमडीएफ विखंडन संभव कारण हो सकता है?
प्रश्न 1: क्या आपको वास्तव में सटीक गिनती की आवश्यकता है? या सिर्फ एक अनुमान? –
न तो - यह केवल एक प्रश्न है जिसे हम किसी और चीज़ पर धीमी प्रदर्शन को देखने के बाद दौड़ते हैं। हम यह जानकर आश्चर्यचकित हुए कि यह बहुत धीमी थी। आंकड़े अपडेट करने का प्रयास करेंगे, लेकिन वे स्वत: अद्यतन करने के लिए सेट हैं। – BonyT
क्या आप बस स्थिरता का उपयोग नहीं कर सकते? मेरा मतलब है, इसमें 33 मिलियन ~ या वास्तव में 33.212.2 9 3 रिकॉर्ड होने के बीच का अंतर कैसे प्रभावित करता है? – bevacqua