Girdi uzunluğuna en yakın süreyi bulun (SQL Server 2008)


12

Veritabanımda (SQL Server 2008 uzamsal) bir nokta bulutu var. Bu yaklaşık 6 milyon kayıttır. 3 sütun vardır: id, değer, geom. Enlem girişinde 'değeri' almanın en iyi yolu nedir ??

SQL Server 2008'deki uzamsal sorgular için yeniyim. Birisi, giriş lat uzun eşleşen veya en yakın geom sütununda nokta bulma basit bir örnek gönderebilir miyim?



Denedim. Ancak 6 milyon kayıt var ve farklı nedenlerle dizin oluşturma başarısız. Şimdi boş bir tablo oluşturmak, geom uzamsal bir dizin eklemek ve sonra veri eklemek için çalışıyorum. İşe yarıyor mu?
Shaunak

Hangi hataları alıyorsunuz? Bir dizin çok yüklemeyi yavaşlatabilir, çünkü birçok satırın yüklemeden sonra bir dizin eklemenin çok daha hızlı olacağını düşünüyorum. Performans büyük ölçüde endekse bağlı olacaktır, bu yüzden bunu doğru yapmaya değer.
Kirk Kuykendall

Yanıtlar:



4

Bu Geometri değil Coğrafya kullanır (veriler Lat / Lng ise veriler Geometri değil Coğrafya Türü olmalıdır)

"SQL Server coğrafya veri türü GPS enlem ve boylam koordinatları gibi elipsoidal (yuvarlak toprak) veri depolar."

Bir lat / lng (-122.0 37.0) noktasından En Yakın 5 Kaydı Seçmek için kullanabilirsiniz.

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 nedir? üzgünüm yeni bir bie thats neden soruyorum
Shax

DECLARE @p coğrafyası
Andrew Hill
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.