ค้นหา lat lat ที่ใกล้เคียงที่สุดกับ lat lat Input (SQL Server 2008)


12

ฉันมีจุดเมฆในฐานข้อมูลของฉัน (SQL Server 2008 เชิงพื้นที่) นั่นคือประมาณ 6 ล้านบันทึก มี 3 คอลัมน์: id, value, geom เป็นวิธีที่ดีที่สุดในการรับ 'คุณค่า' ที่ lat lat นานอะไร?

ฉันยังใหม่กับการสืบค้นเชิงพื้นที่ใน SQL Server 2008 ใครบางคนสามารถโพสต์ตัวอย่างง่ายๆในการค้นหาจุดในคอลัมน์ geom การจับคู่หรือใกล้เคียงที่สุดจาก lat lat อินพุทยาวได้หรือไม่


คุณได้สร้างดัชนีอวกาศหรือไม่?
Kirk Kuykendall

ฉันเหนื่อย. แต่มี 6 ล้านบันทึกและการสร้างดัชนีล้มเหลวด้วยเหตุผลที่แตกต่างกัน ตอนนี้ฉันกำลังพยายามสร้างตารางเปล่าเพิ่มดัชนีเชิงพื้นที่บน geom แล้วเพิ่มข้อมูล มันทำงานอย่างไร
Shaunak

คุณได้รับข้อผิดพลาดอะไร ดัชนีสามารถโหลดช้าลงมากสำหรับหลาย ๆ แถวฉันคิดว่าการเพิ่มดัชนีหลังจากโหลดจะเร็วขึ้นมาก ประสิทธิภาพจะขึ้นอยู่กับดัชนีเป็นอย่างมากดังนั้นจึงคุ้มค่าที่จะได้รับสิทธินั้น
Kirk Kuykendall

คำตอบ:


6

สิ่งที่คุณกำลังค้นหาคือแบบสอบถามเพื่อนบ้านที่ใกล้ที่สุด ดูลิงค์ต่อไปนี้ฉันคิดว่าคุณจะพบสิ่งที่คุณกำลังมองหา

ข้อความค้นหาเพื่อนบ้านที่ใกล้ที่สุด

เพื่อนบ้านที่ใกล้ที่สุด

การเพิ่มประสิทธิภาพเพื่อนบ้านที่ใกล้ที่สุดใน SQL Server Denali


4

สิ่งนี้ใช้ภูมิศาสตร์ไม่ใช่เรขาคณิต (หากข้อมูลเป็น Lat / Lng คุณควรเป็นข้อมูลประเภทภูมิศาสตร์ไม่ใช่เรขาคณิต)

"ชนิดข้อมูลภูมิศาสตร์ของ SQL Server เก็บข้อมูลรูปวงรี (รอบโลก) เช่นตำแหน่งละติจูดและลองจิจูดของ GPS"

ในการเลือกบันทึกที่ใกล้ที่สุด 5 อันดับแรกจากจุด lat / lng (-122.0 37.0) ที่คุณสามารถใช้ได้

SELECT   TOP 5
         geography::STGeomFromText('POINT(-122.0 37.0)', 4326).STDistance(p) 
FROM     markers
WHERE    geography::STGeomFromText('POINT(-122.0 37.0)', 4326).STDistance(p) < 25
ORDER BY geography::STGeomFromText('POINT(-122.0 37.0)', 4326).STDistance(p);

p คืออะไร ขออภัยฉันเป็นคนใหม่ที่ทำไมถาม
Shax

DECLARE @p ภูมิศาสตร์
Andrew Hill
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.