मेरे पास एक तालिका है जिसमें लगभग 2 मिलियन रिकॉर्ड हैं। मैं एक स्थानिक सूचकांक बनाता हूं, जो बाउंडिंग बॉक्स के अलावा अन्य चूक का उपयोग करता है। मैं देख रहा हूँ कि कुछ क्वेरीज़ बहुत तेज़ हैं, और कुछ बेहद धीमी हैं। निर्धारण कारक क्वेरी में उपयोग किए गए बहुभुज के आकार को प्रकट होता है।
बड़े खोज क्षेत्रों में, WITH(INDEX(SIX_FT5))
क्वेरी का उपयोग धीमा कर देता है (0 सेकंड से, 15+ सेकंड तक)। छोटे खोज क्षेत्रों पर, इसके ठीक विपरीत।
यहाँ कुछ प्रश्न दिए गए हैं जिनके साथ मैं परीक्षण कर रहा हूँ:
तेज:
SELECT TOP(1000) * FROM [FT5] WHERE (shape.STIntersects(geometry::STGeomFromText('POLYGON ((-133462.805381701 -668610.241000959, 2934415.68824241 -668610.241000959, 2934415.68824241 2200521.65831815, -133462.805381701 2200521.65831815, -133462.805381701 -668610.241000959))', 2264)) = 1)
धीरे:
SELECT TOP(1000) * FROM [FT5] WITH(INDEX(SIX_FT5)) WHERE (shape.STIntersects(geometry::STGeomFromText('POLYGON ((-133462.805381701 -668610.241000959, 2934415.68824241 -668610.241000959, 2934415.68824241 2200521.65831815, -133462.805381701 2200521.65831815, -133462.805381701 -668610.241000959))', 2264)) = 1)
किसी को पता है कि यहाँ क्या हो रहा है?