ฉันมีตารางที่มีประมาณ 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)
ใครรู้ว่าเกิดอะไรขึ้นที่นี่