किसी इनपुट लेट लॉन्ग (SQL Server 2008) के सबसे निकटतम अक्षांश का पता लगाएं


12

मेरे डेटाबेस में एक बिंदु बादल है (SQL Server 2008 स्थानिक)। जो कि लगभग 6 मिलियन रिकॉर्ड है। 3 कॉलम हैं: आईडी, मान, जियोम। इनपुट लाट पर 'मान' प्राप्त करने का इष्टतम तरीका क्या है ??

मैं SQL Server 2008 में स्थानिक प्रश्नों के लिए नया हूं। क्या कोई व्यक्ति भू-स्तंभ में बिंदु को खोजने, इनपुट के लंबे समय से मिलान या निकटतम का कोई सरल उदाहरण पोस्ट कर सकता है?



मैंने कोशिश की। लेकिन 6 मिलियन रिकॉर्ड हैं और अलग-अलग कारणों से इंडेक्स फेल हो रहे हैं। मैं कोशिश कर रहा हूं कि अब एक खाली तालिका बनाएं, जियोम पर एक स्थानिक सूचकांक जोड़ें और फिर डेटा जोड़ें। क्या वह काम करता है?
शौनक

आपको क्या त्रुटियाँ हो रही हैं? एक सूचकांक बहुत लोडिंग को धीमा कर सकता है, इसके लिए मुझे लगता है कि लोडिंग के बाद एक सूचकांक जोड़ने वाली कई पंक्तियाँ बहुत तेज़ होंगी। प्रदर्शन सूचकांक पर बहुत निर्भर करेगा, इसलिए यह सही होने के लायक है।
किर्क कुएकेन्डल

जवाबों:


6

क्या आप के लिए देख रहे हैं निकटतम पड़ोसी क्वेरी है। निम्नलिखित लिंक को देखें, मुझे लगता है कि आप वही पाएंगे जो आप खोज रहे हैं।

निकटतम पड़ोसी क्वेरी

निकटतम पड़ोसी

SQL सर्वर Denali में निकटतम पड़ोसी अनुकूलन


4

यह भूगोल नहीं ज्यामिति का उपयोग करता है (यदि डेटा लैट है / Lng आप डेटा होना चाहिए भूगोल प्रकार ज्यामिति नहीं है)

"एसक्यूएल सर्वर भूगोल डेटा प्रकार दीर्घवृत्त (राउंड-अर्थ) डेटा को संग्रहीत करता है, जैसे कि जीपीएस अक्षांश और देशांतर दिशा-निर्देश।"

किसी शीर्ष / lng (-122.0 37.0) बिंदु से शीर्ष 5 निकटतम रिकॉर्ड का चयन करने के लिए आप उपयोग कर सकते हैं।

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);

पी क्या है? क्षमा करें, मैं पूछ रहा हूँ कि क्यों एक नया bie thats
Shax

DECLARE @ पी भूगोल
एंड्रयू हिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.