קורס Oracle SQL Tuning – כיוונון ושיפור ביצועי שאילתות

על הקורס

קורס זה מעניק למסיימיו ידע בכיוונון ושיפור ביצועי שאילתות בסביבת Oracle ומלמד בין היתר את הנושאים הבאים: שלבי עיבוד שאילתה, קריאת תוכניות פעולה, ביצוע Trace, שימוש ב Oracle Optimizer, סטטיסטיקות וטכניקות שונות לשימוש באינדקסים.

קהל יעד

קורס זה נועד בעיקרו למנהלי מסדי נתונים, אנשי תשתיות, כותבי קוד, ואנשי מקצוע נוספים אשר אחראים על ניהול וכיוונון מסד הנתונים.

יעדים מרכזיים

בסיום הקורס יכירו התלמידים את הנושאים הבאים :

  • שימוש חוזר בתוכניות פעולה, עבודה עם משתני BIND, ניצול יעיל של ה Shared Cursor.
  • קריאת תוכניות פעולה וביצוע Trace על שאילתות.
  • שימוש נכון ב Oracle Optimizer והגדרת סטטיסטיקות.
  • שימוש באינדקסים – BTREE, IOT, ו BITMAP
  • צריכת משאבים בעת פעולות JOIN ו ORDER BY
  • עבודה עם HINTS.

דרישות קדם

  • נסיון קודם בניהול בסיס הנתונים Oracle
  • ידע בסיסי בשפת ה SQL
  • ידע בסיסי בכתיבת קוד PL/SQL

נושאי הקורס

קורס ה Oracle SQL Tuning מכיל נושאים רבים, לפניכם הנקודות המרכזיות, תכנים מדוייקים יוגדרו בהתאם לצרכי הלקוח.

  • SQL Statement Processing – Reuse of Execution Plans, Use of Bind Variables within PL/SQL program (Implicit Bind Variables), Use of Bind Variables within Dynamic SQL (Explicit Bind Variables), SQL Statement Processing Phases, Shared Cursor, V$LIBRARYCACHE, V$SQLAREA, Adaptive Cursor Sharing in Oracle Database 11g.
  • EXPLAIN and AUTOTRACE – EXPLAIN PLAN Command, using plan table, using dbms_xplan.display, SQL*Plus AUTOTRACE, dbms_xplan.display_cursor, AUTOTRACE vs  DBMS_XPLAN.DISPLAY_CURSOR
  • SQL Trace and TKPROF – Enable / Disable Tracing, Using ALTER SESSION / INSTANCE, Formatting Your Trace Files – TKPROF, How to identify my trace file ?, Interpreting the results.
  • Introduction to the Oracle Optimizer – Functions of the Oracle Optimizer, Steps in Optimizer Operations, Choice of optimizer approaches – Rule Based Optimizer / Cost Based Optimizer, Optimizer Mode (RULE / CHOOSE / FIRST_ROWS_n /ALL ROWS  ), Choice of access paths, OPTIMIZER_FEATURES_ENABLE, OPTIMIZER_INDEX_COST_ADJ.
  • Basic Index Concepts – Selectivity and Cardinality, The Clustering Factor, Indexes and Performance, Indexes and Data Dictionary, Suppressing Indexes, Using Functions, Comparing Mismatched Data Types, Concatenated Indexes, BTREE Indexes.
  • Optimizer Statistics -Gathering Statistics, Retention Period (Historical stats), Histograms – column statistics, Histogram Types, Estimating the statistics – Schema level and Data Dictionary Info, GATHER STALE, DYNAMIC SAMPLING, Segment level statistics, System statistics, Index statistics, export/import stats, Pending stats, Optimizer advanced options
  • Influencing the Optimizer(Hints) – Hints for query transformations, Hints for optimization approaches and goals, Hints for access paths, Hints for Join Orders, Hints for Join Operation, Hints for Parallel Execution, Other hints.
  • Sorts and Joins – SORTS – Related Parameters, Monitoring Sort Operations, Temporary Tablespace, Workarea Usage, V$SQL_WORKAREA_HISTOGRAM, Avoiding Sort Operations, JOINS – Nested Loops, Hash Joins, Sort/Merge Joins, Use the 10053 Event to Trace CBO Choices, SubQueries, IN vs EXISTS, anti-join, STAR JOIN.
  • Plan Stability (Outlines) – Creating a stored outline, Automatic method / Manual Method, Use stored_outlines at the session / system level, Drop outline.
  • Advanced Indexes -Bitmap Indexes VS B-tree Indexes, BITMAP and DML.
  • Materialized Views – Intoduction, ENABLE QUERY REWRITE, Stale information in the Materialized view, query_rewrite_integrity, Refreshing the Materialized View.
  • Index Organized Tables -Storage – IOT vs. Heap Tables, ROWID – IOT vs. Heap Tables, Advantages of an IOT, IOT Disadvantages, OVERFLOW, PCTTHRESHOLD, Mapping table.