İçinde yaklaşık 2 milyon kayıt bulunan bir masam var. Sınırlama kutusu dışındaki varsayılanları kullanarak bir uzamsal dizin oluşturun. Bazı sorguların son derece hızlı ve bazılarının son derece yavaş olduğunu fark ettim. Belirleyici faktör, sorguda kullanılan çokgen boyutuna görünür.
Daha büyük arama alanlarında, WITH(INDEX(SIX_FT5))
sorguyu önemli ölçüde yavaşlatır (0 saniyeden 15 saniyeye). Daha küçük arama alanlarında, tam tersi doğrudur.
Test ettiğim sorgulardan bazıları:
Hızlı:
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)
Yavaş:
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)
Burada neler olduğunu bilen var mı?