Part 3 (or is it 4?) in this ongoing series on limiting DOPs. In this post (kind of a follow up on the one about who rules over whom) I want to dig into the...
Part 3 (or is it 4?) in this ongoing series on limiting DOPs. In this post (kind of a follow up on the one about who rules over whom) I want to dig into the hierarchy between the settings CPU, IO, Auto and Integer. On top of that we should quickly set the record straight on AUTO. Parallel_degree_limit = AUTO Right now this is setting the parallel_degree_limit to CPU. The future might hold something much cooler, but for now you can either use it and it is CPU, or ignore it and...
Part 3 (or is it 4?) in this ongoing series on limiting DOPs. In this post (kind of a follow up on the one about who rules over whom) I want to dig into the hierarchy between the settings CPU, IO,...
As a very short follow up on the previous post. So here is some more on getting a serial plan and why that happens Another reason - compared to the auto DOP is...
As a very short follow up on the previous post. So here is some more on getting a serial plan and why that happens Another reason - compared to the auto DOP is not on as we looked at in the earlier post - and often more prevalent to get a serial plan is if the plan simply does not take long enough to consider a parallel path. The resulting plan and note looks like this (note that this is a serial plan!): explain plan for select count(1) from sales; SELECT PLAN_TABLE_OUTPUT...
As a very short follow up on the previous post. So here is some more on getting a serial plan and why that happens Another reason - compared to the auto DOP is not on as we looked at in the...
I've recently gotten some questions around "why do I not see a parallel plan" while Auto DOP is on (I think)...? It is probably worthwhile to quickly go over...
I've recently gotten some questions around "why do I not see a parallel plan" while Auto DOP is on (I think)...? It is probably worthwhile to quickly go over some of the ways to find out what Auto DOP was thinking. In general, there is no need to go tracing sessions and look under the hood. The thing to start with is to do an explain plan on your statement and to look at the parameter settings on the system. Parameter Settings to Look At First and foremost, make sure that...
I've recently gotten some questions around "why do I not see a parallel plan" while Auto DOP is on (I think)...? It is probably worthwhile to quickly go over some of the ways to find out what Auto DOP...
I've gotten a couple of questions from Dan Morgan and figured I start to answer them in this way. While Dan is running on a big system he is running with...
I've gotten a couple of questions from Dan Morgan and figured I start to answer them in this way. While Dan is running on a big system he is running with Database Resource Manager and he is trying to make sure the system doesn't go crazy (remember end user are never, ever crazy!) on very high DOPs. Q: How do I control statements with very high DOPs driven from user hints in queries? A: The best way to do this is to work with DBRM and impose limits on consumer groups. The Max...
I've gotten a couple of questions from Dan Morgan and figured I start to answer them in this way. While Dan is running on a big system he is running with Database Resource Manager and he is trying to...
Previously on this channel, mapping users to consumer groups is easy. Ok, so what if I do not have any users? Well you could use application context and other...
Previously on this channel, mapping users to consumer groups is easy. Ok, so what if I do not have any users? Well you could use application context and other nice things in DBRM, but really, what if you want this to be driven by the amount of work to be done? That is what we are going to quickly sketch out here, a way of dynamically moving queries from one resource plan to the other BEFORE it executes. Doing the switch before the statement actually starts is beneficial in...
Previously on this channel, mapping users to consumer groups is easy. Ok, so what if I do not have any users? Well you could use application context and other nice things in DBRM, but really, what if...
One of the things we did do at Openworld was a handson session showing how to implement a mapreduce system on top of a generic Oracle Database. This is based on...
One of the things we did do at Openworld was a handson session showing how to implement a mapreduce system on top of a generic Oracle Database. This is based on the original posts on this blog, which shows a nice implementation of tablefunctions and mappers etc. But then we thought, why not just go through the tablefunction code and kind of map this to a mapreduce paradigm to show everyone which constructs exist within Oracle and how you can create a data processing /...
One of the things we did do at Openworld was a handson session showing how to implement a mapreduce system on top of a generic Oracle Database. This is based on the original posts on this blog, which...
We talked a bit about workload management in my previous post and here I wanted to use Enterprise Manager, Database Resource Manager (DBRM) and Parallel...
We talked a bit about workload management in my previous post and here I wanted to use Enterprise Manager, Database Resource Manager (DBRM) and Parallel Statement Queuing on an Exadata (V1 hardware, v2 software and 11.2.0.2 database) machine to show some of it in action. Context In DBRM I have created 2 plans, one called batch_plan and one called daytime_plan. The batch_plan favors long running queries from the user RETAIL and gives the resource group called BATCH_PLAN (that...
We talked a bit about workload management in my previous post and here I wanted to use Enterprise Manager, Database Resource Manager (DBRM) and Parallel Statement Queuing on an Exadata (V1...
As the second post in workload management for your Oracle data warehouse I was going to focus on statement queuing some more. Before you read this post it is...
As the second post in workload management for your Oracle data warehouse I was going to focus on statement queuing some more. Before you read this post it is important that you read this older post for context on concurrency. Also realize that what I'm describing here is 11.2.0.2 functionality (some is 11.2.0.1 but major enhancements are in 11.2.0.2 so let's just go with that release). And for those who were at Openworld this year (and can listen to the recordings / download...
As the second post in workload management for your Oracle data warehouse I was going to focus on statement queuing some more. Before you read this post it is important that you read this older post...
Quick and short post as a follow up to the ODTUG session I did on Partitioning. With Database 11g we introduced REF partitioning, which allows us to do PWJ's in...
Quick and short post as a follow up to the ODTUG session I did on Partitioning. With Database 11g we introduced REF partitioning, which allows us to do PWJ's in a master-detail scenario. Which of course is very cool in any 3NF schema where we have lots of these examples. The above is a simple and typical example, where an orders table has child records in a lineitem table. Before REF partitioning we needed to store the ORDER_DATE column in both the parent (where it belongs)...
Quick and short post as a follow up to the ODTUG session I did on Partitioning. With Database 11g we introduced REF partitioning, which allows us to do PWJ's in a master-detail scenario. Which...