{"id":253,"date":"2022-01-17T14:30:36","date_gmt":"2022-01-17T13:30:36","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/2022\/01\/17\/statspack-with-oracle-database-19c-and-multitenant\/"},"modified":"2022-04-06T08:26:45","modified_gmt":"2022-04-06T06:26:45","slug":"statspack-with-oracle-database-19c-and-multitenant","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/","title":{"rendered":"Statspack with Oracle Database 19c and Multitenant"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>When it comes to performance analysis on Oracle databases, everybody think about Diagnostic Pack. This is a very complete tool and it brings much more metrics than a DBA can analyze. But there is a big drawback with this tool: it&#8217;s not included in Standard Edition and it&#8217;s an option with Enterprise Edition. If you don&#8217;t have this tool, it&#8217;s still possible to do performance analysis using older Statspack tool. Statspack is nothing else than the father of Diagnostic Pack, and it still comes with all database versions free of charge. You just need to set it up correctly, and it will help a lot diagnosing performance troubles even if you&#8217;re using a modern environment, I mean 19c and Multitenant. For sure, there is some limitations compared to Diagnostic Pack, like text only reports, less metrics and truncated SQL statements, but it&#8217;s powerful enough for a good DBA willing to check and improve its databases&#8217; performance.<\/p>\n<h2>Does Statspack works correctly with 19c and Multitenant?<\/h2>\n<p>Yes it does. You just need to use a specific setup procedure. Statspack should be deployed at the PDB level if you&#8217;re using Multitenant. And jobs must be configured using dbms_scheduler, as 19c does not support anymore old fashioned dbms_job. Here is the procedure I use when I deploy Statspack on a modern environment.<\/p>\n<h2>Setup procedure<\/h2>\n<p>Before configuring Statspack, make sure you&#8217;re using Standard Edition or make sure you&#8217;re not using Diagnostic Pack on your Enterprise Edition database. Both tools are not supposed to work together, and there is absolutely no use to have both. Diagnostic Pack, and eventually Tuning Pack are enabled\/disabled with an instance parameter.<\/p>\n<pre><code>-- Check if DIAGNOSTIC and TUNING pack are disabled at the CDB level\nSQL&gt; conn \/ as sysdba\nSQL&gt; sho parameter control_mana\n\nNAME\t\t\t\t     TYPE\t VALUE\n------------------------------------ ----------- ------------------------------\ncontrol_management_pack_access\t     string\t NONE\n\n-- Remove DIAGNOSTIC and TUNING packs if needed\nalter system set control_management_pack_access='NONE' scope=spfile;<\/code><\/pre>\n<p>Starting from now, if you&#8217;re using multitenant, commands are done on the PDB:<\/p>\n<pre><code>export ORACLE_PDB_SID=MYPDB;\nsqlplus \/ as sysdba<\/code><\/pre>\n<p>Statspack should use its own tablespace, 2\/3GB should normally be OK.<\/p>\n<pre><code>-- Create a dedicated tablespace if needed\ncreate tablespace PERFSTAT datafile size 300M autoextend on maxsize 3G;<\/code><\/pre>\n<p>In case Statspack was previously deployed, you can remove it to do a clean installation:<\/p>\n<pre><code>-- Remove previously installed statspack if needed\n@?\/rdbms\/admin\/spdrop<\/code><\/pre>\n<p>Statspack setup will need a default tablespace (the one you just created), a temporary tablespace and a password for its user PERFSTAT (prompt):<\/p>\n<pre><code>-- Create statspack's user and objects\ndefine default_tablespace='perfstat'\ndefine temporary_tablespace='temp'\n@?\/rdbms\/admin\/spcreate<\/code><\/pre>\n<p>You should configure an increased metrics level:<\/p>\n<pre><code>-- Increase level of metrics\nexec STATSPACK.MODIFY_STATSPACK_PARAMETER (i_snap_level=&gt;7,i_modify_parameter=&gt;'true', i_instance_number=&gt;null);<\/code><\/pre>\n<p>Statspack will need 2 jobs, 1 for snapshots (a snapshot is flushing actual performance metrics into dedicated tables) and 1 for snapshots&#8217; purge (no need to keep old performance metrics). <\/p>\n<p>Let&#8217;s allow the user PERFSTAT to create jobs:<\/p>\n<pre><code>-- Allow PERFSTAT's user to create jobs\nconn \/ as sysdba\ngrant create job to perfstat;\nconn perfstat\/perfstat\nshow user<\/code><\/pre>\n<p>Let&#8217;s stop and drop existing jobs for snapshots if needed:<\/p>\n<pre><code>-- Drop existing snapshot job if needed\nExec dbms_scheduler.stop_job('SP_SNAP_JOB');\nExec dbms_scheduler.drop_job('SP_SNAP_JOB');\nExec dbms_scheduler.drop_schedule('SP_SNAP_SCHED');\nExec dbms_scheduler.drop_program('SP_SNAP_PROG');<\/code><\/pre>\n<p>And now let&#8217;s create snapshots scheduling components. In this example, my choice is one snapshot every 15 minutes. I would not recommend more often, and less often like every hour is also OK.<\/p>\n<pre><code>-- Create snapshot job using scheduler - every fifteen minutes\nexec dbms_scheduler.create_program(program_name =&gt; 'SP_SNAP_PROG', program_type =&gt; 'STORED_PROCEDURE', program_action =&gt; 'PERFSTAT.statspack.snap', number_of_arguments =&gt; 0, enabled =&gt; FALSE);\nexec dbms_scheduler.enable(name =&gt; 'SP_SNAP_PROG');\nexec dbms_scheduler.create_schedule (schedule_name =&gt; 'SP_SNAP_SCHED', repeat_interval =&gt; 'freq=hourly; byminute=0,15,30,45; bysecond=0',end_date =&gt; null, comments =&gt; 'Schedule for Statspack snaps');\nexec dbms_scheduler.create_job (job_name =&gt; 'SP_SNAP_JOB', program_name =&gt; 'SP_SNAP_PROG', schedule_name =&gt; 'SP_SNAP_SCHED',  enabled =&gt; TRUE, auto_drop =&gt; FALSE, comments =&gt; 'Statspack Job for snaps');<\/code><\/pre>\n<p>Let&#8217;s check the scheduling of this job:<\/p>\n<pre><code>-- Check job and scheduling\nset lines 140\ncol owner for a10\ncol job_name for a15\ncol program_name for a20\ncol first for a18\ncol next for a18\ncol last for a18\nselect OWNER, JOB_NAME, PROGRAM_NAME, to_char(START_DATE,'YYYY\/MM\/DD HH24:MI') \"FIRST\", to_char(NEXT_RUN_DATE,'YYYY\/MM\/DD HH24:MI') \"NEXT\", to_char(LAST_START_DATE,'YYYY\/MM\/DD HH24:MI') \"LAST\" from dba_scheduler_jobs where owner='PERFSTAT';\n\n\nOWNER\t   JOB_NAME\t   PROGRAM_NAME \tFIRST\t\t NEXT\t\t  LAST\n---------- --------------- -------------------- ---------------- ---------------- ----------------\nPERFSTAT   SP_SNAP_JOB\t   SP_SNAP_PROG \t2021\/12\/24 14:45 2021\/12\/24 14:45<\/code><\/pre>\n<p>Let&#8217;s drop the purge job if needed:<\/p>\n<pre><code>-- Drop existing purge job if needed\nExec dbms_scheduler.stop_job('SP_PURGE_JOB');\nExec dbms_scheduler.drop_job('SP_PURGE_JOB');\nExec dbms_scheduler.drop_schedule('SP_PURGE_SCHED');\nExec dbms_scheduler.drop_program('SP_PURGE_PROG');<\/code><\/pre>\n<p>Create the purge job scheduling. Purge is done weekly, during the night between Saturday and Sunday. In this example, I&#8217;m using a 30 day retention for snaphots. I would recommend a retention between 10 days and 2 months. Even if you don&#8217;t need a long retention, it&#8217;s always nice being able to compare performance metrics the days\/weeks before a performance issue.<\/p>\n<pre><code>-- Create a procedure for the purge\ncreate or replace procedure extended_purge(\nnum_days IN number\n)\nis\nBEGIN\n  statspack.purge(i_num_days =&gt; num_days, i_extended_purge =&gt; TRUE);\nEND extended_purge;\n\/\n\n-- Test this procedure if needed\n-- exec extended_purge(30);\n\n\n-- Create snapshot job using scheduler - every Sunday at 0:20AM - keep 30 days of snapshots\nexec dbms_scheduler.create_program(program_name =&gt; 'SP_PURGE_PROG', program_type =&gt; 'STORED_PROCEDURE', program_action =&gt; 'PERFSTAT.extended_purge', number_of_arguments =&gt; 1, enabled =&gt; FALSE);\nexec DBMS_SCHEDULER.define_program_argument (program_name =&gt; 'SP_PURGE_PROG', argument_name =&gt; 'i_num_days', argument_position =&gt; 1, argument_type =&gt; 'NUMBER', default_value =&gt; 30);\nexec dbms_scheduler.enable(name =&gt; 'SP_PURGE_PROG');\nexec dbms_scheduler.create_schedule (schedule_name =&gt; 'SP_PURGE_SCHED', repeat_interval =&gt;  'freq=weekly; byday=SUN; byhour=0; byminute=20',end_date =&gt; null, comments =&gt; 'Schedule for Statspack purge');\nexec dbms_scheduler.create_job (job_name =&gt; 'SP_PURGE_JOB', program_name =&gt; 'SP_PURGE_PROG', schedule_name =&gt; 'SP_PURGE_SCHED',  enabled =&gt; TRUE, auto_drop =&gt; FALSE, comments =&gt; 'Statspack Job for purge');<\/code><\/pre>\n<p>If you&#8217;re using older versions like 12cR1, some events may be missing and you should add them (does not concern 19c):<\/p>\n<pre><code>-- Insert missing idle events on 12cR1 only: <a href=\"https:\/\/www.dbi-services.com\/blog\/statspack-idle-events\/\" rel=\"noopener\" target=\"_blank\">have a look at this blog post<\/a>\ndelete from STATS$IDLE_EVENT;\ninsert into STATS$IDLE_EVENT select name from V$EVENT_NAME where wait_class='Idle';\ninsert into STATS$IDLE_EVENT values('log file parallel write');\ninsert into STATS$IDLE_EVENT values('target log write size');\ncommit;<\/code><\/pre>\n<p>Now it&#8217;s time to lock the PERFSTAT user, using Statspack report feature is usually done connecting with SYS:<\/p>\n<pre><code>-- Lock the perfstat user\nconn \/ as sysdba\nalter user perfstat account lock;<\/code><\/pre>\n<p>Now with SYS let&#8217;s check the scheduling of both jobs:<\/p>\n<pre><code>-- Check jobs's scheduling\nset lines 140\ncol owner for a10\ncol job_name for a15\ncol first for a18\ncol next for a18\ncol last for a18\ncol program_name for a20\nselect OWNER, JOB_NAME, PROGRAM_NAME, to_char(START_DATE,'YYYY\/MM\/DD HH24:MI') \"FIRST\", to_char(NEXT_RUN_DATE,'YYYY\/MM\/DD HH24:MI') \"NEXT\", to_char(LAST_START_DATE,'YYYY\/MM\/DD HH24:MI') \"LAST\"  from dba_scheduler_jobs where owner='PERFSTAT';\n\nOWNER\t   JOB_NAME\t   PROGRAM_NAME \tFIRST\t\t NEXT\t\t  LAST\n---------- --------------- -------------------- ---------------- ---------------- ----------------\nPERFSTAT   SP_SNAP_JOB\t   SP_SNAP_PROG \t2021\/12\/24 14:45 2021\/12\/24 14:45\nPERFSTAT   SP_PURGE_JOB    SP_PURGE_PROG\t2021\/12\/25 00:20 2021\/12\/25 00:20<\/code><\/pre>\n<p>Let&#8217;s check again later including the run and failure counts, the actual retention (how many days of snapshots are available) and volume of data for these performance metrics:<\/p>\n<pre><code>-- Check later after several occurences\nset lines 140\ncol owner for a10\ncol job_name for a15\ncol first for a18\ncol next for a18\ncol last for a18\ncol program_name for a20\nselect OWNER, JOB_NAME, PROGRAM_NAME, to_char(START_DATE,'YYYY\/MM\/DD HH24:MI') \"FIRST\", to_char(NEXT_RUN_DATE,'YYYY\/MM\/DD HH24:MI') \"NEXT\", to_char(LAST_START_DATE,'YYYY\/MM\/DD HH24:MI') \"LAST\", run_count, failure_count  from dba_scheduler_jobs where owner='PERFSTAT';\n\nOWNER\t   JOB_NAME\t   PROGRAM_NAME \tFIRST\t\t   NEXT \t      LAST\t\t  RUN_COUNT FAILURE_COUNT\n---------- --------------- -------------------- ------------------ ------------------ ------------------ ---------- -------------\nPERFSTAT   SP_SNAP_JOB\t   SP_SNAP_PROG \t2021\/12\/24 14:45   2022\/01\/02 17:15   2022\/01\/02 17:00\t\t874\t\t0\nPERFSTAT   SP_PURGE_JOB    SP_PURGE_PROG\t2022\/01\/02 00:20   2022\/01\/09 00:20   2022\/01\/02 00:20\t\t  1\t\t0\n\n\n-- Check actual retention\nSQL&gt; select round(sysdate-min(snap_time)) \"RETENTION\" from stats$snapshot;\n\n RETENTION\n----------\n\t 7\n\n-- Check data volume\nSQL&gt; select round(sum(bytes)\/1024\/1024,1) \"PERFSTAT MB\" from dba_segments where owner = 'PERFSTAT';\n\nPERFSTAT MB\n-----------\n      742.8\n\n\n\n...\n\n\nOWNER\t   JOB_NAME\t   PROGRAM_NAME \tFIRST\t\t   NEXT \t      LAST\t\t  RUN_COUNT FAILURE_COUNT\n---------- --------------- -------------------- ------------------ ------------------ ------------------ ---------- -------------\nPERFSTAT   SP_SNAP_JOB\t   SP_SNAP_PROG \t2021\/12\/24 14:45   2022\/01\/04 19:15   2022\/01\/04 19:00\t       1074\t\t0\nPERFSTAT   SP_PURGE_JOB    SP_PURGE_PROG\t2022\/01\/02 00:20   2022\/01\/09 00:20   2022\/01\/02 00:20\t\t  1\t\t0\n\n\n RETENTION\n----------\n\t 9\n\n\nPERFSTAT MB\n-----------\n      940.8\n\n...\n\nOWNER\t   JOB_NAME        PROGRAM_NAME         FIRST              NEXT               LAST                RUN_COUNT FAILURE_COUNT\n---------- --------------- -------------------- ------------------ ------------------ ------------------ ---------- -------------\nPERFSTAT   SP_SNAP_JOB     SP_SNAP_PROG         2021\/12\/24 14:45   2022\/01\/17 14:30   2022\/01\/17 14:15         2303             0\nPERFSTAT   SP_PURGE_JOB    SP_PURGE_PROG        2022\/01\/02 00:20   2022\/01\/23 00:20   2022\/01\/16 00:20            3             0\n\n\n RETENTION\n----------\n\t12\n\n\nPERFSTAT MB\n-----------\n     1751.8<\/code><\/pre>\n<h2>Data volume expected<\/h2>\n<p>Statspack metrics can use several GB on each database depending on the snapshots&#8217; frequency and retention. Here is what you can expect depending on your settings, each snapshot being about 1MB: <\/p>\n<ul>\n<li>1 month &#8211; 1 snap\/h: \u00b1750MB<\/li>\n<li>1 month &#8211; 2 snaps\/h: \u00b11500MB<\/li>\n<li>1 month &#8211; 4 snaps\/h: \u00b13000MB<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Statspack is still a very capable and usable tool on 19c. Yes this is old fashioned, but it&#8217;s free and it does the job for those DBA who know how to read the reports.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction When it comes to performance analysis on Oracle databases, everybody think about Diagnostic Pack. This is a very complete tool and it brings much more metrics than a DBA can analyze. But there is a big drawback with this tool: it&#8217;s not included in Standard Edition and it&#8217;s an option with Enterprise Edition. If [&hellip;]<\/p>\n","protected":false},"author":45,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,198,368,59],"tags":[60,61,62,63,64,65,66,67,68,69,70],"type_dbi":[],"class_list":["post-253","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-database-management","category-development-performance","category-oracle","tag-12c","tag-18c","tag-19c","tag-21c","tag-multitenant","tag-no-diagnostic-pack","tag-pdb","tag-performance","tag-standard-edition","tag-statspack","tag-without-diagnostic-pack"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Statspack with Oracle Database 19c and Multitenant - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Statspack with Oracle Database 19c and Multitenant\" \/>\n<meta property=\"og:description\" content=\"Introduction When it comes to performance analysis on Oracle databases, everybody think about Diagnostic Pack. This is a very complete tool and it brings much more metrics than a DBA can analyze. But there is a big drawback with this tool: it&#8217;s not included in Standard Edition and it&#8217;s an option with Enterprise Edition. If [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-17T13:30:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-06T06:26:45+00:00\" \/>\n<meta name=\"author\" content=\"J\u00e9r\u00f4me Dubar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"J\u00e9r\u00f4me Dubar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/\"},\"author\":{\"name\":\"J\u00e9r\u00f4me Dubar\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd\"},\"headline\":\"Statspack with Oracle Database 19c and Multitenant\",\"datePublished\":\"2022-01-17T13:30:36+00:00\",\"dateModified\":\"2022-04-06T06:26:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/\"},\"wordCount\":685,\"commentCount\":1,\"keywords\":[\"12c\",\"18c\",\"19c\",\"21c\",\"multitenant\",\"no diagnostic pack\",\"PDB\",\"Performance\",\"Standard Edition\",\"Statspack\",\"without diagnostic pack\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Database management\",\"Development &amp; Performance\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/\",\"name\":\"Statspack with Oracle Database 19c and Multitenant - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2022-01-17T13:30:36+00:00\",\"dateModified\":\"2022-04-06T06:26:45+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Statspack with Oracle Database 19c and Multitenant\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd\",\"name\":\"J\u00e9r\u00f4me Dubar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"caption\":\"J\u00e9r\u00f4me Dubar\"},\"description\":\"J\u00e9r\u00f4me Dubar has more than 15 years of experience in the field of Information Technology. Ten years ago, he specialized in the Oracle Database technology. His expertise is focused on database architectures, high availability (RAC), disaster recovery (DataGuard), backups (RMAN), performance analysis and tuning (AWR\/statspack), migration, consolidation and appliances, especially ODA (his main projects during the last years). Prior to joining dbi services, J\u00e9r\u00f4me Dubar worked in a Franco-Belgian IT service company as Database team manager and main consultant for 7 years. He also worked for 5 years in a software editor company as technical consultant across France. He was also teaching Oracle Database lessons for 9 years. J\u00e9r\u00f4me Dubar holds a Computer Engineering degree from the Lille Sciences and Technologies university in northern France. His branch-related experience covers the public sector, retail, industry, banking, health, e-commerce and IT sectors.\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/jerome-dubar\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Statspack with Oracle Database 19c and Multitenant - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/","og_locale":"en_US","og_type":"article","og_title":"Statspack with Oracle Database 19c and Multitenant","og_description":"Introduction When it comes to performance analysis on Oracle databases, everybody think about Diagnostic Pack. This is a very complete tool and it brings much more metrics than a DBA can analyze. But there is a big drawback with this tool: it&#8217;s not included in Standard Edition and it&#8217;s an option with Enterprise Edition. If [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/","og_site_name":"dbi Blog","article_published_time":"2022-01-17T13:30:36+00:00","article_modified_time":"2022-04-06T06:26:45+00:00","author":"J\u00e9r\u00f4me Dubar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"J\u00e9r\u00f4me Dubar","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/"},"author":{"name":"J\u00e9r\u00f4me Dubar","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd"},"headline":"Statspack with Oracle Database 19c and Multitenant","datePublished":"2022-01-17T13:30:36+00:00","dateModified":"2022-04-06T06:26:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/"},"wordCount":685,"commentCount":1,"keywords":["12c","18c","19c","21c","multitenant","no diagnostic pack","PDB","Performance","Standard Edition","Statspack","without diagnostic pack"],"articleSection":["Database Administration &amp; Monitoring","Database management","Development &amp; Performance","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/","url":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/","name":"Statspack with Oracle Database 19c and Multitenant - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2022-01-17T13:30:36+00:00","dateModified":"2022-04-06T06:26:45+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/statspack-with-oracle-database-19c-and-multitenant\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Statspack with Oracle Database 19c and Multitenant"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd","name":"J\u00e9r\u00f4me Dubar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","caption":"J\u00e9r\u00f4me Dubar"},"description":"J\u00e9r\u00f4me Dubar has more than 15 years of experience in the field of Information Technology. Ten years ago, he specialized in the Oracle Database technology. His expertise is focused on database architectures, high availability (RAC), disaster recovery (DataGuard), backups (RMAN), performance analysis and tuning (AWR\/statspack), migration, consolidation and appliances, especially ODA (his main projects during the last years). Prior to joining dbi services, J\u00e9r\u00f4me Dubar worked in a Franco-Belgian IT service company as Database team manager and main consultant for 7 years. He also worked for 5 years in a software editor company as technical consultant across France. He was also teaching Oracle Database lessons for 9 years. J\u00e9r\u00f4me Dubar holds a Computer Engineering degree from the Lille Sciences and Technologies university in northern France. His branch-related experience covers the public sector, retail, industry, banking, health, e-commerce and IT sectors.","url":"https:\/\/www.dbi-services.com\/blog\/author\/jerome-dubar\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=253"}],"version-history":[{"count":5,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/253\/revisions"}],"predecessor-version":[{"id":712,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/253\/revisions\/712"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=253"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}