2012-04-12 16 views
12

का उपयोग करना मैं सीखना चाहता हूं कि एसक्यूएल सर्वर 2012 में स्थानिक इंडेक्स का उपयोग कैसे करें। मेरे पास कुछ समय लेने वाली क्वेरी है इसलिए मुझे इसकी आवश्यकता है।स्थानिक इंडेक्स

मैं कुछ उदाहरण और स्पष्टीकरण के लिए बहुत आभारी हूं।

धन्यवाद!

उत्तर

15

मैंने कुछ समय पहले SQLBits कॉन्फ़्रेंस में एक सत्र प्रस्तुत किया था कि आपको सहायक मिल सकता है। तुम अब भी ऑनलाइन वीडियो और slidedeck देख सकते हैं: http://sqlbits.com/Sessions/Event5/Creating_High_Performance_Spatial_Databases

संक्षेप में:

  • स्थानिक अनुक्रमित पूरी तरह से एसक्यूएल सर्वर में संकुल और गैर क्लस्टर अनुक्रमित करने के लिए अलग हैं।
  • वे स्थानिक क्वेरी के लिए "प्राथमिक फ़िल्टर" प्रदान करके काम करते हैं - स्थानिक सूचकांक संभव उम्मीदवार परिणामों के अनुमानित सेट का चयन करने के लिए ग्रिड का उपयोग करता है, लेकिन इसमें झूठी सकारात्मक शामिल हो सकती है।
  • एक माध्यमिक फ़िल्टर क्वेरी के लिए सही परिणाम सेट प्राप्त करने के लिए झूठी सकारात्मकताओं को समाप्त करता है।
  • तेजी से प्रदर्शन करने वाली स्थानिक क्वेरी प्राप्त करने की कुंजी एक सूचकांक बनाना है जो सटीक (यानी कुछ झूठी सकारात्मक) है लेकिन छोटे (यानी खोज के लिए बहुत अधिक रिकॉर्ड नहीं) ताकि अधिकांश काम प्राथमिक फ़िल्टर द्वारा किया जा सके , और अधिक महंगा माध्यमिक फ़िल्टर नहीं।
  • आप SQL सर्वर प्रबंधन स्टूडियो का उपयोग कर ज्यामिति/भूगोल डेटा के कॉलम पर एक स्थानिक अनुक्रमणिका बना सकते हैं, या CREATE INDEX T-SQL कथन का उपयोग कर सकते हैं। हालांकि, यह सूचकांक हमेशा प्रश्नों में स्वचालित रूप से उपयोग नहीं किया जा सकता है। यह देखने के लिए कि क्या स्थानिक इंडेक्स का उपयोग किया जा रहा है, क्लस्टर्ड इंडेक्स सेक (स्थानिक) आइटम के लिए क्वेरी निष्पादन योजना देखें।
  • यह सुनिश्चित करने के लिए कि एक स्थानिक अनुक्रमणिका का उपयोग क्वेरी को पूरा करने के लिए किया जाता है, आप अपने SELECT कथन में तालिका नाम के बाद (इंडेक्स (YourSpatialIndex)) सहित एक स्पष्ट अनुक्रमणिका संकेत जोड़ सकते हैं।

कई स्थानिक-इंडेक्स विशिष्ट सेटिंग्स हैं जो प्राथमिक फ़िल्टर के प्रदर्शन को प्रभावित कर सकती हैं। शुरू करने के लिए, मैं अनुशंसा करता हूं कि आप डिफ़ॉल्ट पर चिपके रहें, जो कि ग्रिड के सभी चार स्तरों पर मेडीम रिज़ॉल्यूशन है, और प्रति ऑब्जेक्ट 16 कोशिकाएं हैं। यदि आप ज्यामिति डेटाटाइप का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपने एक BOUNDING_BOX सेट किया है जिसमें आपके पूरे डेटासेट शामिल हैं (भूगोल के लिए, स्थानिक इंडेक्स हमेशा पूरे विश्व को कवर करते हैं, इसलिए यह आवश्यक नहीं है)। फिर, एक समय में एक सेटिंग को ट्वीव करने का प्रयास करें और प्रदर्शन में वृद्धि/कमी को मापें। http://www.amazon.com/Pro-Spatial-SQL-Server-2012/dp/1430234911/ref=sr_1_3?ie=UTF8&qid=1334310547&sr=8-3 (पूर्ण त्याग - - लेखक मैं)

+0

< प्लग> एक अध्याय स्थानिक अनुक्रमण और </प्लग> "SQL सर्वर 2012 के साथ प्रो स्थानिक" में आगामी स्थानिक प्रश्नों के सुधार के प्रदर्शन करने के लिए समर्पित है धन्यवाद दोस्त! तुम महान हो! यह वही है जिसे मैं देख रहा था। – Nenad

+0

एचिसन, मुझे स्थानिक इंडेक्स में समस्या है - http://stackoverflow.com/questions/11088775/error-when-using-spatial-index-in-sql- सर्वर क्या आप मदद कर सकते हैं? धन्यवाद! – Nenad

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