سؤال

أنا أعمل مع Sybase 15 في طلبي وهناك مشكلة في الأداء تتعلق بالوصول المتداخل. لقد قمت بتخزين الإجراء الذي يحدد عمودان من جدولين ويقارن بين أكثر من 10 أعمدة بين هذه الجداول. ولكن عندما أدير هذا المخزن. بروك ، والنتيجة تستغرق 40 دقيقة. أضفت بيان "Set Merge-Join Off" إلى أعلى بروك ، ثم تستغرق النتيجة 22 ثانية. لكني بحاجة إلى حل آخر بدون ذلك. كنت أستخدم Sybase 12.5 من قبل ولم يكن هناك أي مشكلة من هذا القبيل ، وكان Proc الخاص بي يأخذ 3 دقائق للنتيجة.

لقد قارنت تكوينات الخادم مع تكوينات SP_Configure بين 15 و 12.5 وتكوينات خادم Sybase15 (إعدادات تكوين الذاكرة I/O) أكبر من Sybase12.5.

معلومات: SYBASE15 تقع موارد نظام الكمبيوتر جيدة حقًا.

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

المحلول

لقد أمضيت للتو 14 ساعة في العمل في تصحيح قضايا الأداء الحرجة التي نشأت من هجرة Sybase 15 في عطلة نهاية الأسبوع.

كان محسن الاستعلام يتخذ (بالنسبة لنا) بعض القرارات الغريبة للغاية.

أخذ مثالًا ،

select a, b, c from table1, table2, table3 where ...

عكس

create table #temp (col1 int, col2 int, ... etc)

insert #temp
select a, b, c from table1, table2, table3 where ...

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

في النهاية لجأنا إلى SET FORCEPLAN ON بالنسبة لبعض الاستعلامات - هذا بعد 10 ساعات من وجود DBAs و Sybase على الخط. جاء الحل من مطوري التطبيق أيضًا بدلاً من أي نصيحة من مهندسي Sybase.

حتى تنقذ نفسك بعض الوقت ، خذ هذا الطريق هو اقتراحي.

نصائح أخرى

مثل الآخرين ، لديّ إبطال بدلاً من إجابة حقيقية! نحن نرى مشكلة حيث يقلل مخطط الاستعلام ASE 15 بشكل كبير من تكلفة فحص الجدول ويبالغ في تقدير تكلفة استخدام الفهرس المجمع. ينتج عن هذا الاندماج الانضمام كونه الخطة المقترحة. تعطيل الاندماج ينضم أو تعيين allRows_oltp optgoal بعض الأحيان يؤدي إلى خطة استعلام أفضل. لا تزال التكاليف المقدرة بعيدة ، ولكن من خلال إخراج خيار واحد من الجدول ، قد يجد مخطط الاستعلام حلاً جيدًا - وإن كان ذلك عن طريق التحليل الخاطئ.

تقول وثيقة ASE 15 إنها تحتوي على مجموعة أنظف من الخوارزميات في حين أن مخطط ASE 12 كان لديه مجموعة من الحالات الخاصة. ربما تكون الحالة الخاصة التي تقول "إذا كان لديك عمود الفهرس المجمع في The Join ، فستكون أسرع من مسح الجدول" لن تكون فكرة سيئة ... :(

أعاد Sybase إعادة كتابة محرك الاستعلام بشكل فعال للإصدار 15 مما يعني أن الاستعلامات التي تم تشغيلها فائقة على 12.x قد تعمل أبطأ بكثير على الإصدار الأحدث ، والعكس بالعكس. الطريقة الوحيدة لتصحيح هذا هي مقارنة خطة الاستعلام 12.x بخطة الاستعلام 15 ومعرفة ما يجري بشكل مختلف.

يجب على كل من يهتم بهذه القضية قراءة هذا المستند:

http://www.sybase.com/files/white_papers/ase15-optimizer-best-practices-v1-051209-wp.pdf

لديها تحذير صريح من الهجرة من Sybase 12 إلى Sybase 15.

queteth:

... لا تعامل ASE 15 على أنها "مجرد إصدار آخر". بقدر ما نود أن نقول أنه يمكنك ببساطة ترقية تطبيقاتك وتوجيهها إلى الخوادم التي تمت ترقيتك ، وعمق التغيير واتساعه في أحد المجالات الأساسية في قاعدة البيانات ، تنفيذ الاستعلام ، يستلزم نظام اختبار أكثر تركيزًا. تهدف هذه الورقة إلى تزويدك بالحقائق الواضحة وأفضل الممارسات لتقليل هذا الجهد قدر الإمكان عملياً.

يمضي في الحديث عن محسن الاستعلام ASE 15 الجديد ، واستعلامات Vis-A-Vis OLTP واستعلامات DSS (نظام دعم القرار).

لكن, ، هناك أخبار جيدة: في مارس 2009 ، قدم Sybase 15.0.3 وضع توافق. انظر المستند التالي:

http://www.sybase.com/detail؟id=1063556

مع هذا الوضع ، لا تحتاج إلى تحليل الاستفسارات لتحديد ما إذا كانت تناسب ملفات تعريف OLTP أو DSS.

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