{"id":1333,"date":"2007-10-29T12:00:00","date_gmt":"2007-10-29T12:00:00","guid":{"rendered":"http:\/\/orcldoug.com\/blog\/?p=1333"},"modified":"2007-10-29T12:00:00","modified_gmt":"2007-10-29T12:00:00","slug":"parallel-tidbits","status":"publish","type":"post","link":"http:\/\/orcldoug.com\/blog\/2007\/10\/29\/parallel-tidbits\/","title":{"rendered":"Parallel Tidbits"},"content":{"rendered":"<p>A couple of small things I noticed recently. The first was a mention of the presence of <a href=\"http:\/\/structureddata.org\/2007\/10\/23\/bloom-filters\/\">Bloom Filters in PX plans<\/a> over on <a href=\"http:\/\/structureddata.org\/\">Greg Rahn&#8217;s blog<\/a>, another one that I picked up through OraNA which looks very interesting. Greg&#8217;s <a href=\"http:\/\/structureddata.org\/2007\/10\/26\/ideas-for-oracle-performance-topics\/\">looking for ideas<\/a> for performance related blogs at the moment, so you might have some suggestions.<\/p>\n<p>The other I noticed via the <a href=\"http:\/\/www.freelists.org\/archives\/oracle-l\/\">Oracle-L<\/a> digest email. I don&#8217;t always read this as well as I should because of all those damn email .sigs that clutter it up! Anyway, when I saw this comment from <a href=\"http:\/\/jonathanlewis.wordpress.com\/all-postings\/\">Jonathan Lewis<\/a>, it prompted a minor concern.<\/p>\n<blockquote><p><em>To the best of my knowledge the \/*+ parallel(alias, degree) *\/ hint does NOT tell the optimizer to use parallel execution, it merely tells the optimizer to divide the cost of a tablescan on &#8216;alias&#8217; by &#8216;degree&#8217; (allowing for the effect of the _optimizer_percent_parallel in general and a fixed 0.9 scaling factor in 10g specifically) and then follow the consequences.<\/p>\n<p>It is perfectly feasible that the optimizer found a serial index access path that was cheaper than the &#8216;tablescan cost \/ 4&#8217; dictated by the hint.<\/em><\/p><\/blockquote>\n<p>He makes a wider-ranging point in a later reply.<\/p>\n<blockquote><p><em>Under ANY circumstances, what you are trying to do with hints is to restrict the optimizer to having just ONE possible path through its own codebase.  If you don&#8217;t use enough hints, or don&#8217;t use the hints properly, then the optimizer may find a way of doing something you didn&#8217;t want, despite obeying all your hints at the appropriate<br \/>\n points in its working.<\/p>\n<p>So, if you use the PARALLEL(XXX) hint, think about ANY executions that might NOT do a parallel tablescan on table XXX and make it impossible<br \/>\n for them to happen.<\/em><\/p><\/blockquote>\n<p>It&#8217;s very similar to things I&#8217;ve heard Jonathan say on other occasions, so why just parrot his words here?<\/p>\n<p>To provide a balance to my constant use of very simple hints in the various PX papers. In most cases, the queries and objects I&#8217;m using are so simple that the hints are almost certain to give me what I&#8217;m looking for but, for more complex statements, you might need to be more careful to include <em>a full set of hints<\/em> to persuade Oracle to follow your intentions. <\/p>\n<p>My minor concern was that in keeping things simple, people might believe things are always that simple! Which, as usual, they&#8217;re not &#128521;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of small things I noticed recently. The first was a mention of the presence of Bloom Filters in PX plans over on Greg Rahn&#8217;s blog, another one that I picked up through OraNA which looks very interesting. Greg&#8217;s looking for ideas for performance related blogs at the moment, so you might have some&hellip; <a class=\"more-link\" href=\"http:\/\/orcldoug.com\/blog\/2007\/10\/29\/parallel-tidbits\/\">Continue reading <span class=\"screen-reader-text\">Parallel Tidbits<\/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-1333","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1608,"url":"http:\/\/orcldoug.com\/blog\/2010\/07\/12\/inside-the-oracle-optimizer-has-moved\/","url_meta":{"origin":1333,"position":0},"title":"Inside the Oracle Optimizer has moved","date":"July 12, 2010","format":false,"excerpt":"I only just noticed because I've fallen behind on my blog reading, but this is one of my favourites, so it'll mean some catch-up reading.","rel":"","context":"With 9 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1658,"url":"http:\/\/orcldoug.com\/blog\/2011\/11\/07\/upcoming-ukoug-conference\/","url_meta":{"origin":1333,"position":1},"title":"Upcoming UKOUG Conference","date":"November 7, 2011","format":false,"excerpt":"I always look forward to this time of year as the annual UKOUG conference in Birmingham approaches but this year I think I'm looking forward to it more than ever.As I'll have delivered both of my own presentations at previous events my slides will be done before I arrive and\u2026","rel":"","context":"With 8 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1535,"url":"http:\/\/orcldoug.com\/blog\/2009\/10\/16\/oow-2009-thursday\/","url_meta":{"origin":1333,"position":2},"title":"OOW 2009 &#8211; Thursday","date":"October 16, 2009","format":false,"excerpt":"My Unconference presentation slot was at 10:00 and in addition to Kevin Closson's 9:00 slot being cancelled, I noticed that there was absolutely no one in 'my room' so it looked like a presentation fell through due to lack of attendees \ud83d\ude41 Not a promising start and there definitely needs\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1386,"url":"http:\/\/orcldoug.com\/blog\/2008\/02\/27\/optimiser-upgrading-from-9i-to-10g\/","url_meta":{"origin":1333,"position":3},"title":"Optimiser &#8211; Upgrading from 9i to 10g","date":"February 27, 2008","format":false,"excerpt":"On the one hand, I regret the fact I seem to be posting a lot of links to other people's work at the moment but I couldn't let this one by, if only for those who don't use OraNA or the like and might miss it.The one consistent message I\u2026","rel":"","context":"With 15 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1701,"url":"http:\/\/orcldoug.com\/blog\/2013\/03\/18\/10053-trace-files-getting-started\/","url_meta":{"origin":1333,"position":4},"title":"10053 Trace Files &#8211; Getting Started","date":"March 18, 2013","format":false,"excerpt":"Before getting into the contents of a 10053 trace file and looking at any useful stuff, you need to know what the files are for and how and where they are created. Essentially, setting event 10053 causes the Cost Based Optimizer to write information to a trace file describing the\u2026","rel":"","context":"With 5 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1489,"url":"http:\/\/orcldoug.com\/blog\/2009\/04\/22\/how-to-induce-log-file-sync-waits\/","url_meta":{"origin":1333,"position":5},"title":"How to induce log file sync waits","date":"April 22, 2009","format":false,"excerpt":"(With my tongue causing a minor gash on the inside of my cheek ....)I'm working on an application that seems to suffer constant long waits on log file parallel write and, consequently, log file sync. I thought that the 54 ms log file parallel writes where just typical of an\u2026","rel":"","context":"With 2 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1333","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=1333"}],"version-history":[{"count":0,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1333\/revisions"}],"wp:attachment":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/media?parent=1333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/categories?post=1333"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/tags?post=1333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}