سؤال

هل إنشاء فهرس للعمود الذي يتم تلخيص أسرع من أي مؤشر؟

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

المحلول

وعذرا، وليس من الواضح ما كنت طالبا.

وتسأل، فإنه تسريع استعلام مثل

SELECT product, sum(quantity) FROM receipts 
GROUP BY product

وإذا قمت بإضافة فهرس على الكمية؟

وإذا كان هذا هو السؤال، فالجواب هو لا. بصفة عامة، والفهارس هي مفيدة عندما تحتاج إلى العثور على مجرد بضعة صفوف من بين كثيرين. هنا تحتاج كافة الصفوف، وبالتالي فإن المؤشر لا يساعد.

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

SELECT sum(foo) FROM bar

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

نصائح أخرى

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

إذا كنت تريد أن تجعل الجمع بشكل أسرع، يمكنك قبل تتحقق النتيجة. على أوراكل، استخدم تتحقق المشاهدات ، على MS SQL استخدام <لأ href = "HTTP: // شبكة الاتصالات العالمية .microsoft.com / شبكة التكنولوجيا / prodtechnol / SQL / 2005 / impprfiv.mspx "يختلط =" noreferrer "> المشاهدات المفهرسة .

في مسألة معينة "هل إنشاء فهرس للعمود الذي يتم تلخيصها وأسرع من أي مؤشر؟"، الجواب هو لا.

والجواب على سؤالك يكمن في الإجابة سبنسر:

و"دالة تجميع (العد، كحد أقصى، ودقيقة، وخلاصة القول، متوسط) أن تعمل من خلال كافة الإدخالات في الأعمدة التي تتلخص بغض النظر".

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

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

ولقد وجدت فهرسة عمود في حيث (معرف المنتج هنا) يساعد عند استخدام هذا الاستعلام:

ومعرف المنتج SELECT، مبلغ (كمية) FROM WHERE إيصالات معرف المنتج = 1 GROUP BY معرف المنتج

وذهب واحد من بلدي الاستفسارات من 45 ثانية لحظة تقريبا مرة واحدة أنا واضاف المؤشر.

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