{"id":34616,"date":"2018-03-13T08:30:38","date_gmt":"2018-03-13T15:30:38","guid":{"rendered":"https:\/\/virtual-dba.com\/?p=34616"},"modified":"2021-02-10T18:20:11","modified_gmt":"2021-02-11T01:20:11","slug":"runstats-best-practices-db2-luw","status":"publish","type":"post","link":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/","title":{"rendered":"Runstats Best Practices for Db2 on LUW"},"content":{"rendered":"<h2>What is Runstats?<\/h2>\n<p>Runstats is a utility in Db2 that is used to collect statistics about the data in Db2 tables and indexes. This statistical information is critical to <a href=\"https:\/\/virtual-dba.com\/platforms\/ibm-db2-luw\/\">Db2 database performance<\/a>. Runstats is executed on a table by table basis, so scripting it is quite common.<\/p>\n<p>One of the powers of SQL is that you don&#8217;t have to know where the data is when you query it. All you have to know are things like the table or view name and the column names. You don&#8217;t have to know what disk, or SAN, or LUN, or sector. This means that when a query is executed, Db2 must decide how to access the actual data on disk and how to bring it together to form one result set that looks like the described result set.<\/p>\n<p>Db2 has a powerful cost-based optimizer that makes these decisions. Dozens or hundreds of potential access plans are evaluated based on how expensive the optimizer thinks they will be, and the optimizer then chooses the cheapest access plan. The most critical input to this process is the statistical information about the data being returned. A cost cannot be accurately estimated if there is no estimate of rows in the table.<\/p>\n<p>Runstats can be done fully online, though the activity may impact server resources like CPU utilization, and may also impact buffer pools as it involves full table scans. Even during high-impact or high-volume times, the cost of runstats is usually worth the impact.<\/p>\n<h2>Automatic Runstats<\/h2>\n<p>Db2 offers automatic runstats that can be useful. However, there are some situations where they do not kick in when we need them to. It is therefore critical to augment automatic runstats with targeted runstats after high-impact operations, and to regularly make sure that statistics are updated on everything. Automatic runstats is configured by default in new databases. The following parameters in the database configuration should be on for automatic runstats:<\/p>\n<pre><code> Automatic maintenance                      (AUTO_MAINT) = ON\n   Automatic table maintenance          (AUTO_TBL_MAINT) = ON\n     Automatic runstats                  (AUTO_RUNSTATS) = ON\n       Real-time statistics            (AUTO_STMT_STATS) = ON\n       Statistical views              (AUTO_STATS_VIEWS) = ON\n<\/code><\/pre>\n<p>If using automatic runstats, it makes sense to either do a full runstats on a periodic basis (daily, weekly, or monthly) or to do a periodic runstats targeted to hit tables that have not had runstats done in a while. There are some non-changing tables, particularly in analytics environments, where it may make sense to never do runstats. They are the exception, and not the rule.<\/p>\n<p>You can also control when automatic runstats happen and <a href=\"http:\/\/db2commerce.com\/2017\/09\/05\/excluding-a-table-from-db2s-automatic-runstats\/\">exclude tables<\/a> by using a <a href=\"https:\/\/www.ibm.com\/support\/knowledgecenter\/SSEPGG_11.1.0\/com.ibm.db2.luw.admin.ha.doc\/doc\/t0051354.html\">policy file<\/a>.<\/p>\n<h2>Investigating Runstats<\/h2>\n<p>This is a useful query for understanding, overall, how current runstats are within a database:<\/p>\n<pre><code>SELECT date(stats_time) AS stats_date\n, COUNT(*) AS num_tables \nFROM syscat.tables \nWHERE (type='T' OR (type='V' AND SUBSTR(property,13,1) = 'Y')) \nGROUP BY date(stats_time) \nWITH UR\nSTATS_DATE NUM_TABLES \n---------- -----------\n08\/08\/2017           1\n12\/10\/2017          41\n12\/12\/2017           1\n12\/15\/2017           2\n12\/16\/2017           2\n12\/17\/2017           1\n01\/10\/2018           2\n01\/16\/2018           1\n01\/17\/2018           2\n-                  121\n  10 record(s) selected.\n<\/code><\/pre>\n<p>The output above tells us that 121 tables or statistical views  in this database have never had runstats done on them. The others have various runstats times spanning over a few months. Note that this doesn&#8217;t dig deeper, but is a good starting point for evaluating runstats on a database and knowing where to dig deeper.<\/p>\n<p>It is also possible to list out all runstats actions taken, whether they are automated or they are manual over a specified period of time:<\/p>\n<pre><code>  select pid, tid,\n       substr(eventtype, 1, 10),\n       substr(objtype, 1, 30) as objtype,\n       substr(objname_qualifier, 1, 20) as objschema,\n       substr(objname, 1, 10) as objname,\n       substr(first_eventqualifier, 1, 26) as event1,\n       substr(second_eventqualifiertype, 1, 2) as event2_type,\n       substr(second_eventqualifier, 1, 20) as event2,\n       substr(third_eventqualifiertype, 1, 6) as event3_type,\n       substr(third_eventqualifier, 1, 15) as event3,\n       substr(eventstate, 1, 20) as eventstate\n     from table(sysproc.pd_get_diag_hist\n       ('optstats', 'EX', 'NONE',\n         current_timestamp - 3 days, cast(null as timestamp))) as sl\n     where eventstate='success'\n     order by timestamp(varchar(substr(first_eventqualifier, 1, 26), 26));\nPID                  TID                  3          OBJTYPE                        OBJSCHEMA            OBJNAME    EVENT1                     EVENT2_TYPE EVENT2               EVENT3_TYPE EVENT3          EVENTSTATE\n-------------------- -------------------- ---------- ------------------------------ -------------------- ---------- -------------------------- ----------- -------------------- ----------- --------------- --------------------\n            41353228               172976 COLLECT    TABLE AND INDEX STATS          Db2NT                IDC_PRIVAT 2017-03-02-04.00.27.162299 BY          User                 -           -               success\n            41353228               172976 COLLECT    TABLE AND INDEX STATS          Db2NT                IDC_SPEC_P 2017-03-02-04.00.27.669589 BY          User                 -           -               success\n            41353228               271592 COLLECT    TABLE AND INDEX STATS          Db2NT                INTERNET_S 2017-03-02-04.08.35.500213 BY          User                 -           -               success\n            41353228               303750 COLLECT    TABLE AND INDEX STATS          Db2NT                ICARO_MAX_ 2017-03-02-04.22.13.016770 BY          User                 -           -               success<\/code><\/pre>\n<h2>Runstats Options<\/h2>\n<p>There are a vast number of options available to make statistics more detailed and relevant or to make execution of runstats faster or less impactful. The <a href=\"https:\/\/www.ibm.com\/support\/knowledgecenter\/en\/SSEPGG_11.1.0\/com.ibm.db2.luw.admin.cmd.doc\/doc\/r0001980.html\">full syntax for the runstats command<\/a> is available in the IBM Db2 Knowledge Center. Full coverage of every option is beyond the scope of this article.<\/p>\n<p>Generally using syntax like this is a good default place to start:<\/p>\n<pre><code>runstats on table schema.table with distribution and detailed indexes all;<\/code><\/pre>\n<p>If doing runstats on statistical views, the proper syntax on 9.7 is:<\/p>\n<pre><code>runstats on table schema.view with distribution;<\/code><\/pre>\n<p>With 10.1 and higher, the following syntax works for statistical views:<\/p>\n<pre><code>runstats on view schema.view with distribution;<\/code><\/pre>\n<p>Distribution statistics and detailed index statistics give the best set of data for Db2 to work with. Sampling can be used at the table and\/or the index level to speed up runstats. Sampling is acceptable to use if runstats simply do not complete within a reasonable time. Depending on database size, runstats may take hours to run for all tables.<\/p>\n<p>The runstats utility can also be throttled. This will cause it to run slower, but to have less impact on the database server while it is running.<\/p>\n<h2>Special Statistical Techniques<\/h2>\n<p><a href=\"https:\/\/www.ibm.com\/support\/knowledgecenter\/SSEPGG_11.1.0\/com.ibm.db2.luw.admin.perf.doc\/doc\/c0005297.html\">Column group statistics<\/a> can be used to calculate correct distribution statistics on a group of columns within a table. These can solve specific problems related to the optimizer incorrectly estimating the cardinality for a section of a query. If this is used, then a statistical profile should be set for the table. This will allow scripts and utilities to respect the special statistics used.<\/p>\n<p><a href=\"https:\/\/www.ibm.com\/support\/knowledgecenter\/SSEPGG_11.1.0\/com.ibm.db2.luw.admin.perf.doc\/doc\/c0021713.html\">Statistical views<\/a> fill a similar role to support distribution statistics that may have specific relationships across more than one table. They require regular runstats to make sure the data is current.<\/p>\n<h2>Best Practices for Runstats<\/h2>\n<ol>\n<li>Automated Runstats should minimally be enabled through setting the database configuration parameters for AUTO_MAINT,AUTO_TBL_MAINT, and AUTO_STMT_STATS. It is optional to enable AUTO_RUNSTATS and AUTO_STATS_VIEWS.<\/li>\n<li>If full automatic statistics are used, check for missed tables on a monthly or weekly basis and do runstats on them.<\/li>\n<li>If full automatic statistics are not used, script daily or weekly runstats for all tables following the scripting best practices below.<\/li>\n<li>Runstats should be collected on system tables<\/li>\n<li>Runstats should be executed for the whole database before any REORGCHK operation<\/li>\n<li>Runstats should be executed for a table after any REORG operation<\/li>\n<li>Statistics profiles should be used for any tables needing a runstats command different than the standard. It doesn&#8217;t hurt to set statistics profiles for everything.<\/li>\n<li>Distribution statistics should generally be collected<\/li>\n<li>Consider excepting volatile tables from runstats.<\/li>\n<\/ol>\n<h3>Runstats Scripting Best Practices<\/h3>\n<p>The best runstats script should:<\/p>\n<ul>\n<li>Generate a list of tables to do runstats on in a dynamic fashion so that any new tables are picked up<\/li>\n<li>Respect any statistics profiles<\/li>\n<li>Handle table names or schema names with mixed case or space<\/li>\n<li>Allow for exclusion of specific tables<\/li>\n<li>Generate runstats both on tables and statistical views<\/li>\n<li>Perform an rbind after collecting statistics<\/li>\n<li>Log the time that runstats starts and stops on each table<\/li>\n<li>Minimally log the output of each command. Ideally handle errors properly and retry for certain errors.<\/li>\n<\/ul>\n<h2>Summary<\/h2>\n<p>Following these best practices for regular runstats will prevent performance degradation. It will also make sure that when a performance problem occurs, you have a stable foundation from which to investigate and engage expert help. With XTIVIA&#8217;s Virtual-DBA services, we are happy to implement our scripts and best practices for keeping statistics up to date in your databases.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is Runstats? Runstats is a utility in Db2 that is used to collect statistics about the data in Db2 tables and indexes. This statistical information is critical to Db2 database performance. Runstats is executed on a table by table basis, so scripting it is quite common. One of the powers of SQL is that [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":34718,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","content-type":"","footnotes":""},"categories":[4166,17],"tags":[76,3656],"class_list":["post-34616","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-db2","tag-db2-luw","tag-runstats"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Runstats Best Practices for IBM Db2 on LUW - Guide<\/title>\n<meta name=\"description\" content=\"Runstats is a utility in Db2 that is used to collect statistics about the data in Db2 tables and indexes. Learn more in this Runstats Best Practices Guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Runstats Best Practices for Db2 on LUW\" \/>\n<meta property=\"og:description\" content=\"Runstats is a utility in Db2 that is used to collect statistics about the data in Db2 tables and indexes. Learn more in this Runstats Best Practices Guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/\" \/>\n<meta property=\"og:site_name\" content=\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-13T15:30:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-11T01:20:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/virtual-dba.com\/media\/Runstats-Best-Practices-for-Db2-on-LUW.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"557\" \/>\n\t<meta property=\"og:image:height\" content=\"291\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"XTIVIA\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:site\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"XTIVIA\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/\"},\"author\":{\"name\":\"XTIVIA\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1\"},\"headline\":\"Runstats Best Practices for Db2 on LUW\",\"datePublished\":\"2018-03-13T15:30:38+00:00\",\"dateModified\":\"2021-02-11T01:20:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/\"},\"wordCount\":1082,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Runstats-Best-Practices-for-Db2-on-LUW.jpg\",\"keywords\":[\"db2 luw\",\"runstats\"],\"articleSection\":[\"Blog\",\"Db2\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/\",\"url\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/\",\"name\":\"Runstats Best Practices for IBM Db2 on LUW - Guide\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Runstats-Best-Practices-for-Db2-on-LUW.jpg\",\"datePublished\":\"2018-03-13T15:30:38+00:00\",\"dateModified\":\"2021-02-11T01:20:11+00:00\",\"description\":\"Runstats is a utility in Db2 that is used to collect statistics about the data in Db2 tables and indexes. Learn more in this Runstats Best Practices Guide.\",\"breadcrumb\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#primaryimage\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Runstats-Best-Practices-for-Db2-on-LUW.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Runstats-Best-Practices-for-Db2-on-LUW.jpg\",\"width\":557,\"height\":291,\"caption\":\"runstats best practices\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/virtual-dba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Runstats Best Practices for Db2 on LUW\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/virtual-dba.com\/#website\",\"url\":\"https:\/\/virtual-dba.com\/\",\"name\":\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\",\"description\":\"Remote Database Administration\",\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/virtual-dba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/virtual-dba.com\/#organization\",\"name\":\"Virtual-DBA: Remote DBA | Remote Database Administration\",\"alternateName\":\"Virtual-DBA powered by XTIVIA\",\"url\":\"https:\/\/virtual-dba.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"width\":557,\"height\":291,\"caption\":\"Virtual-DBA: Remote DBA | Remote Database Administration\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/virtual_dba\",\"https:\/\/www.linkedin.com\/showcase\/36220649\/\",\"https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg\"],\"description\":\"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.\",\"email\":\"info@xtivia.com\",\"telephone\":\"8886853101\",\"legalName\":\"XTIVIA, Inc\",\"foundingDate\":\"1992-05-01\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"201\",\"maxValue\":\"500\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1\",\"name\":\"XTIVIA\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g\",\"caption\":\"XTIVIA\"},\"url\":\"https:\/\/virtual-dba.com\/author\/xtivia\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Runstats Best Practices for IBM Db2 on LUW - Guide","description":"Runstats is a utility in Db2 that is used to collect statistics about the data in Db2 tables and indexes. Learn more in this Runstats Best Practices Guide.","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:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/","og_locale":"en_US","og_type":"article","og_title":"Runstats Best Practices for Db2 on LUW","og_description":"Runstats is a utility in Db2 that is used to collect statistics about the data in Db2 tables and indexes. Learn more in this Runstats Best Practices Guide.","og_url":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/","og_site_name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","article_published_time":"2018-03-13T15:30:38+00:00","article_modified_time":"2021-02-11T01:20:11+00:00","og_image":[{"width":557,"height":291,"url":"https:\/\/virtual-dba.com\/media\/Runstats-Best-Practices-for-Db2-on-LUW.jpg","type":"image\/jpeg"}],"author":"XTIVIA","twitter_card":"summary_large_image","twitter_creator":"@virtual_dba","twitter_site":"@virtual_dba","twitter_misc":{"Written by":"XTIVIA","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#article","isPartOf":{"@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/"},"author":{"name":"XTIVIA","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1"},"headline":"Runstats Best Practices for Db2 on LUW","datePublished":"2018-03-13T15:30:38+00:00","dateModified":"2021-02-11T01:20:11+00:00","mainEntityOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/"},"wordCount":1082,"commentCount":1,"publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Runstats-Best-Practices-for-Db2-on-LUW.jpg","keywords":["db2 luw","runstats"],"articleSection":["Blog","Db2"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/","url":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/","name":"Runstats Best Practices for IBM Db2 on LUW - Guide","isPartOf":{"@id":"https:\/\/virtual-dba.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#primaryimage"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Runstats-Best-Practices-for-Db2-on-LUW.jpg","datePublished":"2018-03-13T15:30:38+00:00","dateModified":"2021-02-11T01:20:11+00:00","description":"Runstats is a utility in Db2 that is used to collect statistics about the data in Db2 tables and indexes. Learn more in this Runstats Best Practices Guide.","breadcrumb":{"@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#primaryimage","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Runstats-Best-Practices-for-Db2-on-LUW.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Runstats-Best-Practices-for-Db2-on-LUW.jpg","width":557,"height":291,"caption":"runstats best practices"},{"@type":"BreadcrumbList","@id":"https:\/\/virtual-dba.com\/blog\/runstats-best-practices-db2-luw\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/virtual-dba.com\/"},{"@type":"ListItem","position":2,"name":"Runstats Best Practices for Db2 on LUW"}]},{"@type":"WebSite","@id":"https:\/\/virtual-dba.com\/#website","url":"https:\/\/virtual-dba.com\/","name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","description":"Remote Database Administration","publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/virtual-dba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/virtual-dba.com\/#organization","name":"Virtual-DBA: Remote DBA | Remote Database Administration","alternateName":"Virtual-DBA powered by XTIVIA","url":"https:\/\/virtual-dba.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","width":557,"height":291,"caption":"Virtual-DBA: Remote DBA | Remote Database Administration"},"image":{"@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/virtual_dba","https:\/\/www.linkedin.com\/showcase\/36220649\/","https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg"],"description":"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.","email":"info@xtivia.com","telephone":"8886853101","legalName":"XTIVIA, Inc","foundingDate":"1992-05-01","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"201","maxValue":"500"}},{"@type":"Person","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1","name":"XTIVIA","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g","caption":"XTIVIA"},"url":"https:\/\/virtual-dba.com\/author\/xtivia\/"}]}},"_links":{"self":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/34616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/comments?post=34616"}],"version-history":[{"count":0,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/34616\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media\/34718"}],"wp:attachment":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media?parent=34616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/categories?post=34616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/tags?post=34616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}