سؤال

ويتم الحصول على قصفت مواقع لدينا من الصعب جدا لذلك نحن نلقي نظرة إلى تحسين بعض الاستعلامات الموجودة لدينا.

وبينما ينظر الى هذا ركضنا عبر العديد من الاستفسارات التي كانت خطة تنفيذ حوالي 4-5 مرات أسرع عند إشارة بسيطة من فهرس متفاوت المسافات هي في الاستعلام ... على سبيل المثال

إذا كان هذا الاستعلام القديم:

SELECT ...
FROM myTable
WHERE categoryID =  @category 

والاستعلام التالي سيكون 4 مرات أسرع وفقا لخطة التنفيذ في SSMS:

SELECT ...
FROM myTable
WHERE categoryID =  @category 
AND lotID = lotID

ونحن لا يمكن أن يبدو لفهم كيف أن هذا من شأنه أن يجعل الاستعلام بشكل أسرع. فهرس متفاوت المسافات على lotID لكن منذ لها القيام مقارنة ضد نفسه كيف يتم ذلك من خلال المساعدة؟

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

المحلول

ويبدو واضحا جدا بالنسبة لي

لا تغطيها الاستعلام الأول عن طريق فهرس متفاوت المسافات في حين أن الثاني هو منذ lotID ليس في جملة WHERE من الاستعلام الأول

وقد ترغب في قراءة مؤشرات SQL خادم يغطي لنرى كيف أن جميع الأعمال

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

وتحرير

وأنا أقرأ وlotID =lotID NOT AND lotID = lotID

وأحيانا يمكنك همية من فهرس متفاوت المسافات عن طريق القيام حيث lotID> 0 (اختيار أقل عدد لديك) وستحصل على السعي

وحتى إذا كان لديك أصغر lotID = 1 وقمت بإضافة وlotID> 0

وتستطيع أن ترى أيضا السعي بدلا من المسح الضوئي، وإثبات WHERE IndexValue> '' في هذا المنصب <لأ href = "http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/is-an -index المسح الضوئي دائما أفضل أو أسرع "يختلط =" نوفولو noreferrer "> هل مؤشر تسعى دائما أفضل أو أسرع من مؤشر مسح؟

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