{"id":1632,"date":"2011-03-12T12:00:00","date_gmt":"2011-03-12T12:00:00","guid":{"rendered":"http:\/\/orcldoug.com\/blog\/?p=1632"},"modified":"2011-03-12T12:00:00","modified_gmt":"2011-03-12T12:00:00","slug":"symposium-2011-my-presentation","status":"publish","type":"post","link":"http:\/\/orcldoug.com\/blog\/2011\/03\/12\/symposium-2011-my-presentation\/","title":{"rendered":"Symposium 2011 &#8211; My Presentation"},"content":{"rendered":"<p>I think the best approach here is to focus on the technical details of the mistake first and then follow with any whining, self-justification or philosophy. <\/p>\n<p>The mistake I made in my presentation was to suggest at least twice that simply adding a new partition to a composite partitioned object is enough to completely invalidate the aggregated global stats at the table level. That was based on me taking a valid example from <a href=\"\/stats.docx\">the white paper<\/a> (listings 13 and 14) and <a href=\"http:\/\/18.133.199.212\/?p=1565\">an earlier blog post<\/a> and (badly) converting it to a simple partitioned table example.<\/p>\n<p>The bit I missed in the conversion (and subsequently reinforced verbally) was that it&#8217;s the subsequent gathering of statistics on a single subpartition and not all of the subpartitions that causes the stats to go bad because some subpartitions are missing statistics. To put it a more elegant way, I liked the way Wolfgang Breitling expressed it to me &#8211; &#8216;A DDL operation will not invalidate the stats&#8217;. He&#8217;s quite right. What invalidates the stats is making the wrong calls to DBMS_STATS.<\/p>\n<p>The white paper hasn&#8217;t changed because the example there was always correct and reflected a real world issue. Here are the specific corrections I made to the slides. <\/p>\n<blockquote><p>Changed whole section to missing *Sub*partition stats to reflect the example in the paper correctly<\/p>\n<p>Slide 35 &#8211; Changed<br \/>Solution &#8211; quickly add a new partition *and gather stats* (incorrectly gather stats, as it happens)<\/p>\n<p>Slides 36-39<br \/>Changed diagrams to show new partition and subpartitions being added but stats only being gathered on one of the new subpartitions, which invalidates both the global and partition stats for the new partition because not all of the underlying component subpartitions have had stats gathered on them. <\/p>\n<p>Essentially, the simple act of adding partitions and subpartitions does not invalidate aggregated global stats, but partially-gathered stats will.<\/p>\n<p>Slides 47-49 <br \/>Fixed repeated implication that adding partition invalidates aggregated stats &#8211; it does not.<\/p>\n<p>Slide 53 <br \/>Toned down some of the negativity about Dynamic Sampling after discussion with Wolfgang<\/p><\/blockquote>\n<p>With the benefit of time and reflection, it was a bad mistake but I don&#8217;t think it was anywhere near to invalidating the presentation which I still think was one of my better ones (no demos, you see &#128521;). I also think it was a perfect example of several essentials of sharing technical information either through presentations or articles.<\/p>\n<p>&#8211; By publishing the scripts you&#8217;ve used and the results, others can look at the tests and see where you&#8217;ve gone wrong.<br \/>&#8211; By publshing the scripts you&#8217;ve used and the results, <em>you<\/em> can immediately see where you&#8217;ve gone wrong when someone questions your results! (As soon as I opened my laptop after being questioned by Wolfgang and Maria, I realised what I&#8217;d done.)<br \/>&#8211; When trying to translate real results to pretty pictures, make sure you don&#8217;t screw up the essential detail in an effort to make things look simpler!<br \/>&#8211; Don&#8217;t rush your slides &#128521;<br \/>&#8211; Don&#8217;t decide that what is on your slides must be true when you&#8217;ve already got a paper showing the truth!<br \/>&#8211; Don&#8217;t believe anything any presenter tells you without seeing the results and then checking for yourself. Trust but Verify is the common mantra.<\/p>\n<p>Anyway, my thanks to Maria Colgan and particularly to Wolfgang Breitling for doing the right thing by highlighting my error and discussing it in some depth so that everyone can get towards the correct information. Although I was naturally a little grumpy that I&#8217;d made a mistake in an area I actually know quite a lot about, the subsequent discussions with Wolfgang is adding to our collected pool of knowledge in very interesting ways.<\/p>\n<p>All of these links are to updated materials.<\/p>\n<p><a href=\"http:\/\/www.slideshare.net\/dougburns\/statistics-on-partitioned-objects\">http:\/\/www.slideshare.net\/dougburns\/statistics-on-partitioned-objects<br \/><\/a><a href=\"\/stats_slides.pdf\">http:\/\/oracledoug.com\/stats_slides.pdf<\/a><br \/><a href=\"\/stats.pptx\">http:\/\/oracledoug.com\/stats.pptx<\/a><br \/> <a href=\"\/stats.docx\">http:\/\/oracledoug.com\/stats.docx<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I think the best approach here is to focus on the technical details of the mistake first and then follow with any whining, self-justification or philosophy. The mistake I made in my presentation was to suggest at least twice that simply adding a new partition to a composite partitioned object is enough to completely invalidate&hellip; <a class=\"more-link\" href=\"http:\/\/orcldoug.com\/blog\/2011\/03\/12\/symposium-2011-my-presentation\/\">Continue reading <span class=\"screen-reader-text\">Symposium 2011 &#8211; My Presentation<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1632","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1596,"url":"http:\/\/orcldoug.com\/blog\/2010\/04\/22\/statistics-on-partitioned-tables-part-6a-copy_table_stats-intro\/","url_meta":{"origin":1632,"position":0},"title":"Statistics on Partitioned Tables &#8211; Part 6a &#8211; COPY_TABLE_STATS &#8211; Intro","date":"April 22, 2010","format":false,"excerpt":"[Phew. At last. The first draft of this was dated more than two weeks ago .... One of the problems with blogging about copying stats was the balance between explaining it and pointing out some of the problems I've encountered. So I've broken up this post, with a little explanation\u2026","rel":"","context":"With 4 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1562,"url":"http:\/\/orcldoug.com\/blog\/2010\/02\/17\/statistics-on-partitioned-tables-part-1\/","url_meta":{"origin":1632,"position":1},"title":"Statistics on Partitioned Tables &#8211; Part 1","date":"February 17, 2010","format":false,"excerpt":"If you've ever worked on large databases that use partitioned and subpartitioned tables, you'll be aware that there are significant challenges in maintaining up-to-date\/appropriate statistics. We've encountered a few problems at work recently and I decided it would be an idea to put together a series of posts covering the\u2026","rel":"","context":"With 11 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1602,"url":"http:\/\/orcldoug.com\/blog\/2010\/05\/07\/statistics-on-partitioned-tables-part-6d-copy_table_stats-a-light-bulb-moment\/","url_meta":{"origin":1632,"position":2},"title":"Statistics on Partitioned Tables &#8211; Part 6d &#8211; COPY_TABLE_STATS &#8211; A Light-bulb Moment","date":"May 7, 2010","format":false,"excerpt":"I'm pretty self-concious of the amount of waffle that surrounds any technical content here, so let's get the technical bit out of the way first, then the waffling can come later ...I finally tracked down the mistake I didn't make in part 6a, but thought I'd identified and fixed in\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1568,"url":"http:\/\/orcldoug.com\/blog\/2010\/02\/28\/statistics-on-partitioned-tables-part-4\/","url_meta":{"origin":1632,"position":3},"title":"Statistics on Partitioned Tables &#8211; Part 4","date":"February 28, 2010","format":false,"excerpt":"In the last post I illustrated the problems you can run into when you rely on Oracle to aggregate statistics on partitions or subpartitions to generate estimated Global Statistics at higher levels of the table. Until there are statistics for all of the relevant structures then aggregation won't take place\u2026","rel":"","context":"With 3 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1705,"url":"http:\/\/orcldoug.com\/blog\/2013\/09\/02\/10053-trace-files-global-stats-on-partitioned-tables\/","url_meta":{"origin":1632,"position":4},"title":"10053 Trace Files &#8211; Global Stats on Partitioned Tables","date":"September 2, 2013","format":false,"excerpt":"One of the reasons why it's taken a while to get around to the next 10053 trace file post (apart from the more human reasons I talked about here) is that I'd planned to show how 10053 trace files can show whether the CBO has used Global Statistics on Partitioned\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1563,"url":"http:\/\/orcldoug.com\/blog\/2010\/02\/22\/statistics-on-partitioned-tables-part-2\/","url_meta":{"origin":1632,"position":5},"title":"Statistics on Partitioned Tables &#8211; Part 2","date":"February 22, 2010","format":false,"excerpt":"In the last part, I asked you to trust me that true Global Stats are a good thing so in this post I hope to show you why they are, to make sure you don't kid yourself that you can avoid them. (Updated later - this is all on 10.2.0.4)Why\u2026","rel":"","context":"With 6 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/comments?post=1632"}],"version-history":[{"count":0,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1632\/revisions"}],"wp:attachment":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/media?parent=1632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/categories?post=1632"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/tags?post=1632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}