سؤال

ولدي حاليا موقع مع جدول يحتوي على أعمدة تعويم خطوط الطول / العرض، ومؤشر على تلك الأعمدة 2 زائد واحد الحاجة I آخر لاسترداد.

وأنا الاستعلام باستمرار هذا الجدول للحصول على الصفوف التي تقع ضمن دائرة نصف قطرها من نقطة معينة (أنا في الواقع الحصول على مربع للسرعة)، ولكن أنا فقط بحاجة إلى الحقول التي يتم فهرستها بالفعل، لذلك هذا المؤشر في الواقع تغطي، وخطة التنفيذ لديه سوى 2 الخطوات التالية:

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

والآن، أنا أحاول الاستفادة من الميزات المكانية للSQL 2008. لقد خلق العمود الجغرافيا، شغل ذلك، إنشاء مؤشر المكانية، ويعمل.

وكل شيء يعمل بشكل جيد، إلا أن خطة التنفيذ لديها مليون خطوة، وأنفقت 74٪ من الوقت على مؤشر مجمع التماس، حيث ينضم الصفوف وجدت في مؤشر المكانية الى طاولة المفاوضات الفعلية، ل الحصول على باقي البيانات ...
(مؤشر المكانية التماس يأخذ 1٪ من تكلفة خطة التنفيذ)

وهكذا، على ما يبدو، أنه يستخدم مؤشر المكاني المناسب والعثور على سجلات أحتاج أسرع بكثير من ذي قبل مع بلدي مؤشر "العادية" على خطوط الطول / العرض، ولكن الانضمام إلى الجدول الرئيسي هو قتل لي، يأخذ الاستعلام المكاني 7 مرات طالما بلدي واحد من العمر.

هل هناك أي طريقة لإضافة المزيد من الأعمدة للمؤشر المكاني بحيث ستتم تغطية ويمكن أن تفعل أشياء في خطوة واحدة، تماما كما كان يفعل من قبل؟
هل هناك أشياء أخرى يمكن أن أفعله لتحسين هذا الوضع؟


وUPDATE: لقد وجدت أن الأرقام القياسية "العادية" يمكن "تشمل" الأعمدة الأخرى باستخدام تحوى الكلمة (التي لم أكن أعرف عنها، اعتدت أن تشمل فقط الأعمدة في المؤشر نفسه)
استنادا إلى وثائق هنا ، هذا الشرط ليس خيارا لمؤشرات المكانية ... أي أفكار؟

وشكرا!
دانيال

هل كانت مفيدة؟

المحلول

لا، للأسف لا يوجد حاليا أي وسيلة لإنشاء فهرس المكاني تغطية - الاستعلام سوف نفعل دائما المرجعية بحث في الجدول الأساسي من أجل الحصول على قيمة الجغرافيا للصف.

لSTIntersects، بشكل واضح يتطلب هذا دائما ونحن ما زلنا بحاجة لإجراء مرشح ثانوي على الكائن الجغرافيا الفعلية للتحقق من أنه يتقاطع في الواقع الكائن المعلمة. ومع ذلك، إذا كنت لا تتطلب إجابات دقيقة، ويمكن استخدام تصفية ()، فإنه سيكون من الممكن توفير أعمدة المفاتيح الأساسية من المؤشر دون أن تفعل البحث إلى الجدول الأساسي على الإطلاق. دعم هذا شيء نحن ننظر لإطلاق سراح المقبل.

في ناحية تسريع الاستعلام الحالي الخاص بك، هل حاولت استخدام تصفية () وضبط الفهرس الخاص بك مع الإخراج من sp_help_geography_index؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top