ابزار SQLTXPLAIN بعنوان SQLT نیز شناخته می شود.ابزاری است برای شناخت اجرای کند پرس و جوها.
این ابزار بصورت کد PL/SQL توسعه داده شده است.
این ابزار با اتصال به پایگاه داده اوراکل و با جمع آوری مسیرهای اجرا (execution plans)، آمارهای CBO براساس بهینه هزینه پرس و جو (Cost-based Optimizer)، متا داده های اشیاء اسکیما، آمارهای اجرایی، پارامترهای پیکربندی و عناصر مشابهی که بر عملکرد پرس و جوها تاثیر می گذارد شروع به تجزیه و تحلیل می کند. خروجی آن بصورت یک فایل zip که مجموعه ای از فایل تشخیصی می باشد. این فایل ها برای تشخیص اجرای کند پرس و جوها می باشند.
قبل از استفاده از ابزار SQLTXPLAIN نخست از اسکریپت SQL Tuning Health-Check استفاده کنید. استفاده از این ابزارها نیازی به لایسنس ندارد و کاملا رایگان می باشند.
Download SQL Tuning Health-Check Script (SQLHC)
Download SQLTXPLAIN (SQLT)
sqlt_10g_11g_12c_18c_05_06_2019.zip
نحوه نصب واجرای SQL Tuning Health-Check
۱-بعد از دانلود فایل sqlhc.zip آن را در یک پوشه دلخواه که حروف فارسی و فاصله نداشته باشد از حالت فشرده خارج کنید. فرض کنید که فایل را روی لینوکس در مسیر زیر باز کردید
/home/oracle/sqlhc
و روی سیستم عامل ویندوز در مسیر زیر باز کردید:
d:\sqlhc
بعد از باز کردن فایل سه تا فایل sqldx.sql sqlhc.sql sqlhcxec.sql را خواهید دید.
۲- به پایگاه داده اوراکل با کاربر sysکه به data dictionary دسترسی داشته باشد متصل شوید.
اگر از سیستم عامل لینوکس به اوراکل وصل می شوید:
# su – oralce
$ sqlplus / as sysdba
اگر از سیستم عامل ویندوز به پایگاه داده اوراکل وصل می شوید:
c:\> sqlplus / as sysdba
حال بشکل زیر از دستور استفاده کنید. نخست SQL_ID مربوط به پرس و جویی را می خواهید چک کنید پیدا کنید با هر ابزاری که آشنا هستید مانند فهرست زیر، می توانید این کار را انجام دهید
Enterprise Manager Cloud Control
TOAD
PLSqldeveloper
Oracle SQLDevelopr
SQL> select select SQL_ID from v$sql where ……
فرض کنید که SQL_ID بدست آمده djkbyr8vkc64h می باشد. حال دستور را بشکل زیر استفاده کنید:
روی سیستم عامل ویندوز:
SQL> @d:\sqlhc\sqlhc.sql T djkbyr8vkc64h
روی سیستم عامل یونیکس و یا لینوکس:
SQL> @/home/oracle/sqlhc/sqlhc.sql T djkbyr8vkc64h
نحوه نصب و راه اندازی SQLTXPLAIN:
نخست فایل را در پوشه ای که کاربر oracle به آن دسترسی دارد از حالت فشرده خارج کنید. فرض کنید پایگاه داده روی سیستم عامل لینوکس است . در مسیر زیر یک پوشه بسازید:
# su – oracle $ cd /home/oracle $ mkdir sqlt $ cd sqlt $ unzip sqlt_10g_11g_12c_18c_05_06_2019.zip $ sqlplus / as sysdba SQL> @/home/oracle/sqlt/sqcreate.sql
zip error: Nothing to do! (SQLT_installation_logs_archive.zip) zip error: Nothing to do! (SQLT_installation_logs_archive.zip) PL/SQL procedure successfully completed. Specify optional Connect Identifier (as per Oracle Net) Include "@" symbol, ie. @PROD If not applicable, enter nothing and hit the "Enter" key. You *MUST* provide a connect identifier when installing SQLT in a Pluggable Database in 12c This connect identifier is only used while exporting SQLT repository everytime you execute one of the main methods. Optional Connect Identifier (ie: @PROD): <-- press Enter PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. Define SQLTXPLAIN password (hidden and case sensitive). Password for user SQLTXPLAIN: <--- Enter the password Re-enter password: <--- Enter the password for confirm PL/SQL procedure successfully completed.
... please wait TABLESPACE FREE_SPACE_MB ------------------------------ ------------- EXAMPLE 216 USERS 32735 Specify PERMANENT tablespace to be used by SQLTXPLAIN. Tablespace name is case sensitive. Default tablespace [UNKNOWN]: USERS <---choose tablespace PL/SQL procedure successfully completed. ... please wait TABLESPACE ------------------------------ TEMP Specify TEMPORARY tablespace to be used by SQLTXPLAIN. Tablespace name is case sensitive. Temporary tablespace [UNKNOWN]: TEMP <---choose temporary tablespace PL/SQL procedure successfully completed. The main application user of SQLT is the schema owner that issued the SQL to be analyzed. For example, on an EBS application you would enter APPS. You will not be asked to enter its password. To add more SQLT users after this installation is completed simply grant them the SQLT_USER_ROLE role. Main application user of SQLT: scott <--Enter schema you want to analyze PL/SQL procedure successfully completed. SQLT can make extensive use of licensed features provided by the Oracle Diagnostic and the Oracle Tuning Packs, including SQL Tuning Advisor (STA), SQL Monitoring and Automatic Workload Repository (AWR). To enable or disable access to these features from the SQLT tool enter one of the following values when asked: "T" if you have license for Diagnostic and Tuning "D" if you have license only for Oracle Diagnostic "N" if you do not have these two licenses Oracle Pack license [T]: <---- press Enter PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. TADOBJ completed. PL/SQL procedure successfully completed. .. .. SQLT users must be granted SQLT_USER_ROLE before using this tool. SQCREATE completed. Installation completed successfully.
چک کردن صحت نصب:
SQL> SELECT 'SQLT version number: '||sqltxplain.sqlt$a.get_param('tool_version')||CHR(10)|| 'SQLT version date : '||sqltxplain.sqlt$a.get_param('tool_date')||CHR(10)|| 'Installation date : '||sqltxplain.sqlt$a.get_param('install_date') sqlt_version FROM DUAL; SQLT_VERSION ----------------------------------------- SQLT version number: 12.1.14 SQLT version date : 2015-12-06 Installation date : 2016-10-17/12:20:51