2009-08-28 13 views
7

मैं वर्तमान में है कि अक्षांश/देशांतर नाव स्तंभ होते हैं एक मेज के साथ एक साइट है, और उन 2 कॉलम के ऊपर एक सूचकांक के साथ साथ एक और एक मैं पुनः प्राप्त करने की जरूरत है।क्या मैं SQL सर्वर 2008 में "कवरिंग, स्पेटियल" इंडेक्स बना सकता हूं?

मैं लगातार एक पंक्ति से त्रिज्या के भीतर आने वाली पंक्तियों को प्राप्त करने के लिए इस तालिका से पूछताछ कर रहा हूं (मुझे वास्तव में गति के लिए एक वर्ग मिल रहा है), लेकिन मुझे केवल उन फ़ील्ड की आवश्यकता है जो पहले ही अनुक्रमित हैं, इसलिए यह अनुक्रमणिका तथ्य यह है कवर में है, और कार्य योजना लागू करके केवल 2 चरण हैं: अब

Index Seek (cost: 100%) and SELECT (cost: 0%) 

, मैं एसक्यूएल 2008 मैं भूगोल स्तंभ बना लिया है के स्थानिक सुविधाओं का लाभ लेने के लिए कोशिश कर रहा हूँ, यह भरा है, बनाया स्थानिक सूचकांक, काम करता है।

और यह सब ठीक काम करता है, सिवाय इसके कि निष्पादन योजना में दस लाख कदम हैं, और 74% समय क्लस्टर्ड इंडेक्स सीक पर खर्च किया जाता है, जहां यह वास्तविक तालिका में स्थानिक सूचकांक में मिली पंक्तियों में शामिल होता है, डेटा के बाकी प्राप्त करने के लिए ...

तो (स्थानिक सूचकांक की शोध कार्य योजना लागू करके लागत का 1% लेता है), जाहिरा तौर पर, यह उचित रूप से स्थानिक सूचकांक उपयोग कर रहा है और रिकॉर्ड खोजने मैं बहुत तेजी से की जरूरत है लेट/लांग पर मेरे "नियमित" इंडेक्स से पहले, लेकिन मुख्य तालिका में शामिल होने से मुझे मारना है, स्थानिक क्वेरी मेरे पुराने के रूप में 7 गुना लेती है।

वहाँ किसी भी तरह से स्थानिक सूचकांक के लिए अधिक स्तंभ जोड़ने इतना है कि यह चर्चा करेंगे, जो और यह एक कदम में कर सकते हैं जैसे यह पहले कर रहा था है?
क्या ऐसी चीजें हैं जो मैं इस स्थिति में सुधार करने के लिए कर सकता हूं?


अद्यतन: मैंने पाया है कि "नियमित" अनुक्रमणिका अन्य स्तंभों कीवर्ड का उपयोग करके "शामिल हैं" कर सकते हैं
अनुसार (जो मैं के बारे में, मैं प्रयोग किया जाता है पता नहीं था करने के लिए सिर्फ सूचकांक अपने आप में एक कॉलम शामिल करें) प्रलेखन here करने के लिए, उस खंड स्थानिक इंडेक्स ... कोई भी विचार के लिए एक विकल्प नहीं है?

धन्यवाद!
डैनियल

उत्तर

4

नहीं, दुर्भाग्य से वर्तमान में कवरिंग स्थानिक इंडेक्स बनाने का कोई तरीका नहीं है - पंक्ति हमेशा पंक्ति के लिए भूगोल मूल्य प्राप्त करने के लिए बेस टेबल पर बुकमार्क लुकअप करेगी।

STIntersects के लिए, यह स्पष्ट रूप से हमेशा की तरह हम अभी भी सत्यापित करने के लिए कि यह वास्तव में पैरामीटर वस्तु काटती है वास्तविक भूगोल वस्तु पर माध्यमिक फिल्टर करने की आवश्यकता की आवश्यकता है। हालांकि, अगर आपको सटीक उत्तरों की आवश्यकता नहीं है और फ़िल्टर() का उपयोग कर सकते हैं, तो मूल तालिका में लुकअप किए बिना इंडेक्स से प्राथमिक कुंजी कॉलम प्रदान करना संभव होगा। इसका समर्थन करना कुछ ऐसा है जिसे हम अगली रिलीज के लिए विचार कर रहे हैं।

अपने वर्तमान क्वेरी को तेज करने के संदर्भ में, आप फ़िल्टर() का उपयोग कर की कोशिश की है और sp_help_geography_index से उत्पादन के साथ अपनी अनुक्रमणिका ट्यूनिंग?

संबंधित मुद्दे