قابليتهاي جديد در اوراكل 11g براي افزايش سرعت و بهبود عملكرد كدهاي SQL
اشاره: خيلي دشوار است كه بتوان بهطور همزمان پايگاهداده و سيستم را تغيير داد و همچنين تضمين كرد كه كارايي كدهاي SQL همانند سابق خواهد بود و همه آنها از بهينهترين پلان اجراي SQL استفاده خواهند كرد. اين مقاله با ارائه چند سؤال چندگزينهاي، قابليتهاي اصلي معرفي شده در اوراكل 11g را براي مديريت تغييرات سيستم و همچنين تضمين عملكرد بهينه كدهاي SQL بررسي ميكند
خيلي دشوار است كه بتوان بهطور همزمان پايگاهداده و سيستم را تغيير داد و همچنين تضمين كرد كه كارايي كدهاي SQL همانند سابق خواهد بود و همه آنها از بهينهترين پلان اجراي SQL استفاده خواهند كرد. اين مقاله با ارائه چند سؤال چندگزينهاي، قابليتهاي اصلي معرفي شده در اوراكل 11g را براي مديريت تغييرات سيستم و همچنين تضمين عملكرد بهينه كدهاي SQL بررسي ميكند. اين سؤالها شبيه سؤالاتي است كه معمولاً در آزمون OracleDatabase 11g New Features for Administrators و آزمونOracle Database 11g Performance Tuning مطرح ميشود.
ابزار SQL Performance Analyzer
در اوراكل 11g ميتوانيد از SQL Performance Analyzer براي پيشبيني تأثير تغييرات روي سيستم، به ازاي بار كاري خاص استفاده كنيد و به اين ترتيب از وقوع مشكلات شديد ناشي از عدم كارايي سيستم جلوگيري كنيد. اين قابليت در تمام مواردي كه در آنها تغييرات در محيط پايگاهداده باعث تغيير در ساختار پلانهاي اجرايي ميشود، بهکار ميرود. تغييرات سيستمي تمام موارد از جمله تغيير در پارامترها، اسكيماها، سختافزار و سيستمعامل و همچنين ارتقاي نرمافزار پايگاهداده را شامل ميشود.
موارد زير، نحوه و مراحل استفاده از SQL Performance Analyzer را نشان ميدهد:
1- بار كاري را از سيستم عملياتي به اصطلاح Capture كنيد. براي اين كار از ابزارAutomatice Workload Repository كه توسط خود اوراكل ارائه شده يا از مجموعه ابزارهاي SQL tuning استفاده كنيد.
2- بار كاري محيط عملياتي را به سيستم آزمايشي انتقال دهيد.
3- در سيستم آزمايشي، كارايي اعمال باركاري مذكور را قبل از انجام تغييرات و با استفاده از SQL Performance Analyzer بررسي كنيد.
4- تغييرات پيشنهادشده توسط SQL Performance Analyzer را در سيستم ايجاد كنيد.
5- با استفاده از SQL Performance Analyzer كارايي سيستم بعد از اعمال تغييرات را محاسبه كنيد.
6- دوباره از SQL Performance Analyzer استفاده كنيد تا كارايي كدهاي SQL را براساس آمار حاصل از اجراي آنها، نظير زمان لازم براي اجراي كد، زمان اختصاص يافته توسط CPU و تعداد بازخوانيها از بافر مشاهده كنيد.
7- كارايي تمام جملات SQL را كه عملكرد ضعيفتري داشتند، دوباره بررسي و تغييرات لازم را اعمال كنيد.
پرسش: DBA سيستم براي بررسي جملات SQL با كارايي كم، بايد از كداميك از ابزارهاي پيشنهاد شده در مجموعه ابزارهاي پيشنهاد شده براي تنظيم پايگاهداده استفاده كند؟
الف- ابزار Oracle SQL Repair Advisor
ب- ابزار Oracle Access Advisor
پ- ابزار SQL Performance Analyzer
ت- ابزار Oracle Automatic Database Diagnostic Monitor
پاسخ: گزينه پ، درست است. گزينه الف نادرست است، زيرا SQL Repair Advisor براي تحليل جملههاي SQL كه با خطا مواجه شدهاند و خطاي آن نيز از نوع بحراني بوده است، به كار ميرود تا پيشنهادهايي را براي بهبود آن جمله SQL ارائه دهد. گزينه ب نادرست است، زيرا SQL Access Advisor پيشنهادهايي براي بهينهسازي ساختار رسانهذخيرهسازي ارائه ميدهد. گزينه ت نيز نادرست است، زيرا ابزار Automatic Diagnostic Monitor يك ابزار خطايابي است كه كارايي پايگاهداده را در فواصل زماني مشخص تحليل کرده و هر گونه مشكل در كارايي سيستم را شناساييميكند.
پرسش: كداميك از جملههاي زير درباره SQL Performance Analyzerدرست است؟
الف- اين برنامه ميتواند به تأثير تغييرات در زمان پاسخگويي جملههاي SQL دسترسي داشتهباشد.
ب- اين برنامه ميتواند تأثير جملههاي SQL را بر همديگر مشخص كند.
پ- اين برنامه ميتواند تنها يك سناريوي اجراي يك جمله SQL را بررسي كند.
ت- اين برنامه ميتواند به كدهاي SQL در سمت Application دسترسي يابد و آن دسته از جملههاي SQL را كه كارايي آنها تغيير يافته است، شناسايي كند.
ث- اين برنامه ميتواند دادههاي مربوط به تأثير پارامترها را بر جملههاي SQL در اختيار قرار دهد.
پاسخ: موارد الف، پ، ت و ث درست هستند. گزينه ب نادرست است، زيرا ابزار SQL Performance Analyzer تأثير كارايي جملههاي SQL را بر يكديگر شناسايي نميكند.
پرسش: شما از SQL Performance Analyzer استفاده ميكنيد تا بار كاري جملههاي SQL را تحليل كنيد و ميتوانيد مجموعه ابزار تنظيم وضعيت جملههاي SQL را به عنوان بخشي از فرآيند كنترل بار كاري جملات SQL استفاده كنيد. چه اطلاعاتي به عنوان بخشي از اين فرآيند ذخيره ميشود؟
الف- جمله SQL
ب- Context حاصل از اجراي برنامه
پ- تعداد دفعات تكرار هر برنامه
ت- آمار مربوط به وضعيت اجراي كد
پاسخ: موارد الف، ب و پ درست هستند. هنگام ايجاد اطلاعات براي بهينهسازي كدهاي SQL ابزار SQL Perforamce Analyzer كد SQL برنامه و Context مربوط به اجراي كد و تعداد دفعات اجراي جمله SQL را ذخيره ميكند. ابزار SQL Performace Analyzer در مرحله بعد از اين اطلاعات استفاده ميكند تا كارايي جملههاي SQL را تحليل كند.
ابزار SQL Plan Management
بعد از آنكه ابزار بهينهساز، يك پلان اجرايي بهينه براي جمله SQL ايجاد كرد، تضميني نيست كه بهينهساز هميشه از آن پلان اجرايي استفاده كند. اين پلان ميتواند به دلايل مختلف تغيير كند، كه از جمله آنها ميتوان به تغيير در تعاريف اسكيماها، تغيير در تنظيمات سيستم و تركيب و ساختار داده كه به صورت موردي يا تركيبي بر كارايي سيستم تأثير ميگذارند و ارتقاي پايگاهداده يا تغيير در نسخه برنامه بهينهساز يا وضعيتهاي جديد، اشاره كرد. عدم توانايي در تضمين اينكه يك پلان اجرايي جديد ميتواند باعث بهبود عملكرد سيستم شود، عاملي شده كه به واسطه آن بعضي از مديران پايگاهداده از امكان غيرفعال كردن تغيير در پلان اجرايي يا تغيير در وضعيت بهينهساز استفاده كنند. در اوراكل 11g قابليت جديدي به نام SQL Plan Management ارائه شدهاست كه نياز به Freeze كردن وضعيت و آمار بهينهساز را برطرف كرده تا امكان كنترل نحوه استفاده از پلان SQL ايجاد شده فراهم شود.
ابزار SQL Plan Management به صورت خودكار با استفاده از پلان اجرايي پايه كدهاي SQL به كنترل تغييرات در پلان كدهاي SQL ميپردازد. با فعالكردن SQL Plan Management يك پلان SQL كه بهتازگي ايجاد شده، تنها در صورتي ميتواند به بخشي از پلان پايه افزوده شود كه باعث كاهش كارايي پايگاهداده نشود. هنگام اجراي يك جمله SQL تنها يكي از پلانهايي استفاده ميشود كه به عنوان پلان پايه آن كد SQL شناخته شدهباشند.
ميتوانيد استفاده از پلانهاي پايه را براي كدهاي SQL يا با استفاده از بارگذاريكلي آنها توسط پكيجي به نام DBMS_SPM انجام دهيد يا آنكه با استفاده از پارامتر OPITIMIZER_CAPTURE_SQL_PLAN_BASELINES
و تنظيم كردن آن به مقدار TRUE اين كار را انجامدهيد. با دراختيارداشتن پلانهاي پايه SQL ميتوانيد با استفاده از تابعDBMS_SPM.EVOLVE_SQL_PLAN_BASELINE، يك پلان جديد به پلانهاي فعال اضافهكنيد يا با استفاده از ابزار SQL Tuning Advisor راهنماييهايي را درباره اينكه آيا پلان جديد بهتر از پلان پايه است، دريافت كنيد.
پرسش: مزيتهاي استفاده از SQL Plan Management چيست؟
الف- اين ابزار باعث ثبات در كارايي سيستمشده و مانع از تغييرات ناخواسته در پلانهاي اجرايي كدها ميشود.
ب- اين ابزار به شما امكان ميدهد تا هنگام مهاجرت به يك نسخه جديد از پايگاهداده اوراكل، به صورت موقت استفاده از پلانهاي اجرايي SQL را Freeze كنيد.
پ- يك پلان اجرايي جديد تا زماني كه شما تأييد نكنيد، آن پلان از پلان موجود، بهتر و مؤثرتر است، توسط پايگاهداده استفاده نخواهد شد.
ت- ميتوانيد تأثير تغييرات سيستمي بر باركاري پايگاهداده را پيشبيني كنيد.
پاسخ: موارد الف، ب و پ درست هستند. گزينه ت نادرست است. زيرا ارزيابي تأثير تغييرات سيستم بر باركاري كدهاي SQL به عهده ابزار SQL Performance Analyzer است.
پرسش: هنگام بررسي پلان پايه اجرايي براي يك جمله SQL متوجه ميشويد كه يك پلان اجرايي خاص توسط سيستم مورد استفاده قرار نميگيرد و شما اعتقاد داريد پلان مذكور كاراتر از پلان مورد استفاده است و ميخواهيد تا از آن استفاده كنيد. كدام مرحله بايد انجام شود تا مطمئن شويد كه بهينهسازي هميشه از آن پلان استفاده ميكند.
الف- پلان مذكور را به عنوان پلان از نوع FIXED معرفي كنيد.
ب- از ابزار SQL Tuing Advisor استفاده كنيد.
پ- پلان مذكور را به عنوان پلان از نوع ACCEPTED معرفي كنيد.
ت- پلان استفاده نشده را با معرفي از پكيج DBMS_SPM تكامل دهيد.
پاسخ: گزينه الف، درست است. علامتگذاري اين پلان به عنوان پلان نوع FIXED تضمين ميكند كه بهينهساز تنها از آن پلان و نه موارد جايگزين استفاده ميكند. گزينه ب نادرست است، زيرا SQL Tuning Advisor استفاده از پروفايل SQL را پيشنهاد ميكند و شما مجبوريد از اين پيشنهاد استفاده كرده و پلان استفاده نشده را در پلانهاي پايه كد SQL قرار دهيد. جواب پ نادرست است، زيرا علامتگذاري پلان به عنوان پلان ACCEPTED به آن معنا است كه شما آن پلان را به عنوان پلان مورد معتبر، ارزيابي كردهايد، اما تضمين نميكند كه آن پلان هنگام اجراي جمله SQL مورد استفاده قرار خواهد گرفت. گزينه ت نادرست است، زيرا EVOLVE_SQL_PLAN_BASELINE كه در بسته DBMS_SPM قرار دارد، مشخص ميكند كه آيا پلان جديد از پلان پايه كنوني براي جمله SQL عملكرد بهتري دارد يا خير، اما در عين حال پلان مذكور را به عنوان پلان ACCEPTED و نه پلان FIXED به فهرست پلانهاي موجود اضافه ميكند.