قابلیت SQL Diagnostic Report – اوراکل 23ai و 19.28

پیش از اوراکل 23ai و 19.28، اسکریپت awrsqrpt.sql یکی از روشهای تحلیل اجراهای قبلی یک کوئری بود و از این طریق می توانستیم آمارهای مربوط به میزان استفاده از CPU، ورودی/خروجی (I/O) ، زمان سپری شده(elapsed time) و … را در یک بازه زمانی مشخص مشاهده کنیم. با این حال، این روش دو محدودیت اصلی داشت. در این روش نیاز بود دو AWR snapshot تعیین شوند و ضمنا اطلاعات ارائه‌شده در گزارش هم نسبتاً محدود بود. نمونه خروجی awrsqrpt.sql:

با معرفی اوراکل 23ai، تابع جدیدی به نام REPORT_SQL به پکیج DBMS_SQLDIAG اضافه شد. این تابع، یک گزارش تشخیصی کامل در قالب HTML برای یک کوئری مدنظر ما تولید می کند و به نسبت اسکریپت awrsqrpt.sql دید عمیق‌تری از نظر پرفورمنسی ارائه می‌دهد. این قابلیت در 19.28 نیز قابل استفاده است.

تابع REPORT_SQL گزارشی گرافیکی در فرمت HTML تولید می‌کند که امکان تحلیل موارد زیر را فراهم می‌سازد:

  • تاریخچه Execution plan

  • اطلاعات مربوط به Cursor sharing

  • تاریخچه Optimizer statistics

  • جزئیات مربوط به Index

  • و موارد دیگر

تابع REPORT_SQL:

SQL> desc DBMS_SQLDIAG.report_sql
Parameter Type     Mode Default? 
--------- -------- ---- -------- 
(RESULT)  CLOB                   
SQL_ID    VARCHAR2 IN            
DIRECTORY VARCHAR2 IN   Y        
LEVEL     VARCHAR2 IN   Y
گزارش‌ها در DIRECTORY مشخص‌شده ایجاد می‌شوند و برای پارامتر LEVEL مقادیر زیر قابل تنظیم هستند:
  • BASIC — گزارش حداقلی که فقط شامل جزئیات ضروری است.

  • TYPICAL — گزارش استاندارد (پیش‌فرض) که بخش‌های پایه و پیشرفته را دربرمی‌گیرد.

  • ALL — گزارشی کامل که شامل همه جزئیات موجود است.

مثال: تولید گزارش

1. ساخت دایرکتوری: ابتدا یک دایرکتوری در دیتابیس بسازید که به محلی که گزارش در آن ذخیره می‌شود اشاره کند:

SQL> create or replace directory DR_Diagnostic as '/oracle/Diagnostic';
Directory created.

2. ایجاد گزارش: با استفاده از یک بلاک PL/SQL، تابع REPORT_SQL را فراخوانی کرده و گزارش را تولید کنید:

 
SQL> DECLARE
  rpt1 CLOB;
BEGIN
  rpt1 := DBMS_SQLDIAG.report_sql(
               sql_id    => 'a0na7qgw1zw98',
               directory => 'DR_DIAGNOSTIC',
               level     => 'ALL');
END;
/
PL/SQL procedure successfully completed.

3. دسترسی به گزارش: به دایرکتوری رفته و فایل تولیدشده را از حالت فشرده خارج کنید تا گزارش HTML قابل مشاهده باشد:

[oracle@OL95 ~]$ cd /oracle/Diagnostic

[oracle@OL95 Diagnostic]$ ll
-rw-r--r--. 1 oracle asmadmin 22637 Aug 27 18:20 SQLR_a0na7qgw1zw98_202508271820.zip

[oracle@OL95 Diagnostic]$ unzip SQLR_a0na7qgw1zw98_202508271820.zip
Archive:  SQLR_a0na7qgw1zw98_202508271820.zip
  inflating: SQLR_a0na7qgw1zw98_202508271820.html

[oracle@OL95 Diagnostic]$ ll
-rw-r--r--. 1 oracle oinstall 125063 Aug 27 18:20 SQLR_a0na7qgw1zw98_202508271820.html
-rw-r--r--. 1 oracle asmadmin  22637 Aug 27 18:20 SQLR_a0na7qgw1zw98_202508271820.zip

 

4. مشاهده گزارش:

  • Execution Plan: تاریخچه‌ی execution plan مربوط به دستور SQL را نمایش می‌دهد.

  • ASH Data: داده‌های Active Session History مربوط به دستور SQL را ارائه می‌دهد.

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:vahidusefzadeh@gmail.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *