Effects of PARALLEL hint in different parts of SQL script

I have a fairly large data warehouse with most of the Child tables having more than 5 billion rows. They are partitioned by a DATE column.
I have several local B-tree and bitmap indexes on the appropriate columns.
The DEGREE on most of the large tables is currently set to 4.
AUTO_DOP is not currently being used.
The DW runs on a 64 processor server with 64GB memory and 16k block size.
Database is Oracle 11.2.0.2 EE on Solaris
I have several queries that extract data into separate reference tables that are totally refreshed on typically a monthly basis although a few are daily.
The queries use an INSERT /*+ APPEND */ and usually are a JOIN of 3-4 tables and/or in-line views with a GROUP BY on 1-2 columns.
I'm trying to find the best place to specify a PARALLEL hint or optionally force parallel DML in the session and set the degree via the 'ALTER SESSION ...' statement.
Here are the options I'm looking at: (others are greatly appreciated!)
1) use the /*+ PARALLEL x */ hint only on the topmost SELECT
2) specify the /*+ PARALLEL x */ hint on each separate SELECT in all the sub-queries and in-line views where it's deemed useful (i.e. not on very small tables).
3) use an 'ALTER SESSION FORCE PARALLEL DML PARALLEL x;'
Questions:
a) by using option (1) will the DOP in that topmost SELECT be used for all subsequent SELECT statements below it?
b) same question for using option (3)?
c) how can I monitor the activity and verify what DOP is used in the different query sections? I have tried to follow the script execution in TOAD but haven't had much luck.
Thanks very much for your help and please let me know if you need any more information.
-gary

garywicke wrote:
Thanks for the feedback! Very useful!
A couple of follow-ups.
My SQL statement structure is basically like this:
INSERT /*+ APPEND  PARALLEL (8) */  INTO <table 1> (COL1, COL2, COL3)
SELECT /*+ PARALLEL (24) */ COL1, COL2, COL3
FROM <table 2>
WHERE ...
GROUP BY ...
I just checked the docs. The syntax for the parallel hint listed for 10gR1 (could have changed for 11gR2 - go ahead and see for yourself)
parallel(table_spec[degree]expecting a table designation and an optional degree. If your syntax is unrecognized the hint will be ignored
It is possible the syntax you are using is valid, being listed elsewhere than the hint definitions. Some hints aren't listed where hints are defined but in the data warehousing guide and so are semi-documented. I have not seen that usage myself.
>
After reading about 'ALTER SESSION ENABLE PARALLEL DML', I can see how to set it but I can't see how to verify it's current state (enabled or disabled). I looked at several system parameters but it wasn't obvious to me. I did see some PARALLEL_MAX_SERVERS (100) and PARALLEL_MIN_SERVERS (0) but didn't know if that applied to any and all SQL statements, including DML which is what I'm doing.I don't know how to tell if parallel DML is enabled with ALTER SESSION ENABLE PARALLEL DML except by turning it on. using SHOW PARAMETERS PARALLEL in SQL*PLUS did not tell me anything when I just tried it. You should be able to turn it on and get an indication from an execution plan that it is being used.

Similar Messages

  • Parallel hint as part of index not working

    Hello,
    I think that I am misusing the parallel hint on this one, and would appreciate some guidance. I have an insert statement as such:
    INSERT INTO TABLE1
    SELECT column1, column2
    FROM table2;
    I modified the query so that it has a parallel:
    SELECT /*+ FULL(table2) PARALLEL(table2, 4) */
    column1, column2
    FROM table2;
    This parallel helps with the query's speed. However, when I use it with the insert statement on the top, it does not insert any record, nor does it give an error message:
    INSERT INTO TABLE1
    SELECT /*+ FULL(table2) PARALLEL(table2, 4) */
    column1, column2
    FROM table2;
    I put EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML'; at the beginning of the procedure, but that did not help.
    I really need the parallel to be in the SELECT statement, that statement runs for about 3 hours without a parallel (due to large amounts of data - no problems with query itself), however it returns only about 10,000 records, and I don't need to insert those with a parallel hint.
    Edited by: user577453 on Mar 17, 2009 12:25 PM -- Added last paragraph.

    user577453 wrote:
    I think that I am misusing the parallel hint on this one, and would appreciate some guidance. I have an insert statement as such:
    I put EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML'; at the beginning of the procedure, but that did not help.
    I really need the parallel to be in the SELECT statement, that statement runs for about 3 hours without a parallel (due to large amounts of data - no problems with query itself), however it returns only about 10,000 records, and I don't need to insert those with a parallel hint.First of all, your subject is probably supposed to be "Parallel hint as part of *insert* not working" rather than "Parallel hint as part of *index* not working", am I right?
    Can you show us the EXPLAIN PLAN output you get for your query and the one you get for your INSERT when using the parallel hints as posted?
    Please mention your database version (4-digits, e.g. 10.2.0.3).
    Please use DBMS_XPLAN.DISPLAY to format the EXPLAIN PLAN output if you're already on 9i or later, and please use the \ tag before and after the DISPLAY output to format it in fixed font for readability.
    What seems to be odd that you say that the result of the query seems to be different when using it as part of the INSERT statement? Are you sure that running the query standalone returns data whereas using exactly the same query in the INSERT statement inserts no records? This would be buggy behaviour.
    Regards,
    Randolf
    Oracle related stuff blog:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Apply Different effects to different parts of same text?

    I have a text logo, which I want to keep intact (there's kerning) so it's all in one text box.
    Let's say:
    HelloNiceWeather
    Could I apply different effects to different parts of the text? (for example I have 'hello' slide up from the bottom of the screen and 'nice' from the top?)
    thanks! It's appreciated

    You can use text Animators to effect specific characters within a text layer, defined by the "Range" parameters of the Animator.  This includes functions like moves, colour fill and stroke, rotation, blur, and many more.  So, in your example, you can apply an Animator to the character range "Nice", program your horizontal move, then apply a new Animator to the character range "Hello", and move them in a different way.
    Read more about Animators in the Help documents here.
    To apply plugin effects (like Lens Blur or Bezier Warp, for example) you would probably need to duplicate your text layer, mask out the unwanted characters, and apply the effect - depending on what you were trying to achieve.

  • Question about PARALLEL hint

    the documentation says that PARALLEL hint can by used in select statements like PARALLEL(emp 8). I have also seen syntaxes like PARALLEL, PARALLEL 8, PARALLEL(8), and in each case the steps in execution plans were the same but the cost assigned was a bit different between each version (but significantly lower than for a query without this hint).
    how does oracle interpret above three syntaxes, ie. /*+ PARALLEL */, /*+ PARALLEL 8 */, /*+ PARALLEL(8) */?
    are there any parts in those syntaxes that are ignored or incorporate default behaviour?
    what syntax is safe to use when one doesn't want to specify the table being parallelized, ie. use syntax like PARALLEL(emp 8)?
    thank you
    Edited by: 943276 on 2012-07-25 19:17

    943276 wrote:
    the documentation says that PARALLEL hint can by used like PARALLEL(emp 8). I have also seen syntaxes like PARALLEL, PARALLEL 8, PARALLEL(8), and in each case the steps in execution plans were the same but the cost assigned was different between each version (and significantly lower than for a query without this hint).
    how does oracle interpret above three syntaxes, ie. /*+ PARALLEL */, /*+ PARALLEL 8 */, /*+ PARALLEL(8) */?
    are there any parts in those syntaxes that are ignored or incorporate default behaviour?
    what syntax is safe to use when one doesn't want to specify the table being parallelized, ie. use syntax like PARALLEL(emp 8)?
    thank you
    Edited by: 943276 on 2012-07-25 19:17You are NOT qualified to use any HINT.
    Oracle recommends against using any HINT.

  • Packing of single M/c in Different parts

    Dear all,
    I have to pack one M/c in two different parts, for examle A & B are two diffent parts but when they assembled it forms C part which is my FG. I have to pack C in two different parts then how i pack C with quantity oan in two different packs.
    plz give me solution for that.
    Reward Pts for useful answers.
    Thx & Regards,
    Pankaj

    garywicke wrote:
    Thanks for the feedback! Very useful!
    A couple of follow-ups.
    My SQL statement structure is basically like this:
    INSERT /*+ APPEND  PARALLEL (8) */  INTO <table 1> (COL1, COL2, COL3)
    SELECT /*+ PARALLEL (24) */ COL1, COL2, COL3
    FROM <table 2>
    WHERE ...
    GROUP BY ...
    I just checked the docs. The syntax for the parallel hint listed for 10gR1 (could have changed for 11gR2 - go ahead and see for yourself)
    parallel(table_spec[degree]expecting a table designation and an optional degree. If your syntax is unrecognized the hint will be ignored
    It is possible the syntax you are using is valid, being listed elsewhere than the hint definitions. Some hints aren't listed where hints are defined but in the data warehousing guide and so are semi-documented. I have not seen that usage myself.
    >
    After reading about 'ALTER SESSION ENABLE PARALLEL DML', I can see how to set it but I can't see how to verify it's current state (enabled or disabled). I looked at several system parameters but it wasn't obvious to me. I did see some PARALLEL_MAX_SERVERS (100) and PARALLEL_MIN_SERVERS (0) but didn't know if that applied to any and all SQL statements, including DML which is what I'm doing.I don't know how to tell if parallel DML is enabled with ALTER SESSION ENABLE PARALLEL DML except by turning it on. using SHOW PARAMETERS PARALLEL in SQL*PLUS did not tell me anything when I just tried it. You should be able to turn it on and get an indication from an execution plan that it is being used.

  • Is using Parallel Hint /*+PARALLEL */  good or bad?

    Hi,
    I am facing problem in using /*+ PARALLEL */ hint in SQL Query its taken long time to execute.
    Is using PARALLEL Hint degrades performance?
    The Table FCT_TABLE is having PARALLEL ( DEGREE DEFAULT INSTANCES DEFAULT ) clause.
    We are using parallel hint as SELECT /*+ PARALLEL(FCT_TABLE 2)
    Any help will be needful for me.
    Thanks and Regards

    user598986 wrote:
    We have noticed the following from the Server:
    1.The Disk I/O is showing 0 always during the time of Execution of the Query.
    2.The I/O Adapter is showing 700%.What is the o/s and version? Do you use any virtualisation? What storage system do you use? What RAID levels, if any? And how did you monitor these results?
    Note that the physical I/O layer is not part of the database layer. From the database layer you typically address I/O issues with
    - logical design (e.g. normalise data so that there's a single copy of the data to maintain and thus less I/O)
    - physical design (e.g. use partitioning, IOTs, clusters, indexes and so on to facilitate less I/O to process data)
    - parallelise (use multiple processes to perform large I/O scans to address some of the inherited latency issues when doing I/O)
    - reduce I/O (e.g. by truncating a table or partition instead of deleting it, using CTAS, design s/w that only needs to make a single pass through a data set, etc)
    From the database app level you have no control over where the data is stored, how it is stored and cached. So, as PL/SQL or app developer, your primary concern should be the amount of I/O your data model and app needs - as that is something you can and do control. And not worry about the physical implementation of the I/O layer. As that should be the concern of the sys admin and DBA of that platform.

  • USE_HASH vs Parallel Hints

    Hi,
    I am working on performance of a query. The Earlier Query was using Parallel Hint with Degree 8 which was using lot of CPU utilization. Now I have replaced that with USE_HASH hint. Which one is more expensive. The Parallel Hint was there in 2 tables, but I have used USE_HASH hint on all 8 table which are there in From Clause.
    Please tell me which one is expensive out of there 2?

    They are hints with different purposes.
    The USE_HASH specifies the Join Method.
    The PARALLEL specifies the Retrieval method.
    You can have
    a. a HASH Join without using Parallel Query
    b. a PARALLEL Query fetch without using a HASH Join
    c. a HASH Join that uses a Parallel Query
    OR, without any Hints, assuming that the Optimizer can generate an optimal plan
    d. Neither Parallel Query NOR Hash Join
    Which is optimal really depends on the nature of the data being queried and the nature of the query itself.
    Hemant K Chitale
    http://hemantoracledba.blogspot.com

  • EdAdding compression (and other effects) to regions only) want different ty

    Hello Everyone,
    I'm new to Logic and I'm trying to find out how to add compression to specific regions in a track. I recorded a live band and I recorded and I want different types of compression (and other effects like eq and even panning) for different parts of the song. For example. I have a guitar track that I recorded , I split the track up from one region into several regions corresponding to the sections of the song. Now I want to add different effects to these different regions. Can I do this in one track or do I need to split all these regions up into their own tracks. I can only see how to add effects at the track level. I can only edit certain things (like Normalization) in the sample editor.
    Thanks in advance.
    --Mike

    Different ways of doing this:
    *If you want to add effects for the different regions on the same track you will have to automize the compressor/Eq/panning settings
    *You can setup different tracks with different Fx settings and move the regions to those new tracks - this way you don't have to automize the different parameters
    *If you want to destructively edit the regions you can either do that in Soundtrack Pro (select the region and hit shift+w to open it in SP - add you fx in there - save the file and it will be updated in Logic)
    or
    *rerecord the regions with the fx through a Bus directly into Logic - route the region track to a Bus and select that Bus as an Input for a new Audio track
    or
    *bounce/reimport the region+fx

  • Two parallel hints in a merge statement

    I am not sure if using the parallel hint in such a way as below would be helpful in parallelizing the query run. Can a parallel hint be used for two different tables in a merge statement like mentioned below?
    MERGE INTO /*+ parallel (TABLE_A,8) */ TABLE_A  A
    USING( SELECT /*+ parallel (TABLE_B,8) */
                            col1,
                            col2
                  FROM TABLE_B
             )  B
    ON A.col1 = B.col1
    WHEN MATCHED THEN
    UPATE ....
    WHEN NOT MATCHED THEN
    INSERT ...
    I am using Oracle 10g.
    Thanks

    This does make sense (allowing for "someone else"'s observation about aliases); however MERGE is DML, so you couldn't get the merge phase working in parallel if you didn't also execute
    alter session enable parallel dml;
    Regards
    Jonathan Lewis

  • Oracle parallel hint

    Hello,
    Is it possible to set a parallel hint in queries?
    Best regards,
    Andrey

    PARALLEL_MAX_SERVERS is the aggregate limit for all concurrent sessions using Parallelism.  Thus, with your value of 35, you could have 8 sessions using 4 PX slaves each but the 9th session would get three slaves.
    PARALLEL_THREADS_PER_CPU does not need to be changed.  It allows Oracle to determine  PARALLEL_MAX_SERVERS based on CPU_COUNT.
    Similarly, CPU_COUNT is not to be changed.
    For a DML (or a query) you set the Degree based on the the "what is required".  This you would best determine from experience against that particular database.
    A degree of 4 maybe good and sufficient in one environment, for a set of requirements but inadequate in another environment (e.g. number of underlying disks, i/o channels, number of processor cores that are free, concurrent load on the server and storage from other sessions/databases, number of partitions in a target partitioned table) for a different set of requirements (e.g number of rows to be processed, time constraint on the execution).
    Hemant K Chitale

  • Parallel hint causes a query to run slower?

    I have an insert...select query where the select is a join between a table with one billion rows (although there is a where clause on an indexed column that restricts it to "only" 300 million), a table with 30 million rows, and a table with about 100,000 rows, where the result is about 20 rows. When I first ran it, it took about 2 hours. I added a Parallel hint, and explain plan showed that it was being used (and v$session showed that I had about 30 additional connections while it ran). but not it takes four hours.
    Is there a reason parallel processing would cause a query to run slower?
    insert /*+ append */ into employees_by_age_group
      pay_plan
    , age_range
    , pay_level
    , fy
    , employee_count
    select /*+ parallel */
           emp.pay_plan
         , to_char(d.min_age) || '-' || to_char(d.max_age) as age_range
         , emp.pay_level
         , pay.fy
         , count(pay.employee_id) as employee_count
    from
      select /*+ index(pay_info pay_info_index_on_site) */
             employee_id
           , extract(year from (dte_ppe_end + 92)) as fy
           , count(employee_id) as num_recs
      from pay_info
      where extract(month from dte_ppe_end) = 10
      and   extract(day from dte_ppe_end) between 14 and 27
      and   substr(pay_type, 1, 1) IN ('A', 'B', 'C')
      and   site like 'Z%'
      group by employee_id, extract(year from (dte_ppe_end + 92))
    ) pay
    join
      select employee_id
           , pay_plan
           , pay_grade
           , pay_step
           , file_date
      from
        select /*+ index(employee_info employee_info_index_on_site) */
               employee_id
             , pay_level
             , file_date
             , max(file_date)
               over (partition by extract(year from (file_date + 61)))
               as last_file_date
        from employee_info
        where site like 'Z%'
      where file_date = last_file_date
    ) emp
    on (
         emp.employee_id = pay.employee_id
         and extract(year from emp.file_date) = pay.fy - 1
    join (
           select employee_id
                , dob
           from (
                  select employee_id
                       , date_birth
                       , row_number() over (partition by employee_id order by date_file desc) as r
                  from employee_birthdates
                  where site like 'Z%'
           where r = 1
         ) dob
    on dob.employee_id = pay.employee_id
    join
                select 20 as min_age, 24 as max_age from dual
      union all select 25 as min_age, 29 as max_age from dual
      union all select 30 as min_age, 34 as max_age from dual
      union all select 35 as min_age, 39 as max_age from dual
      union all select 40 as min_age, 44 as max_age from dual
      union all select 45 as min_age, 49 as max_age from dual
      union all select 50 as min_age, 54 as max_age from dual
      union all select 55 as min_age, 59 as max_age from dual
      union all select 60 as min_age, 64 as max_age from dual
      union all select 65 as min_age, 69 as max_age from dual
      union all select 70 as min_age, 74 as max_age from dual
      union all select 75 as min_age, 79 as max_age from dual
      union all select 80 as min_age, 84 as max_age from dual
      union all select 85 as min_age, 89 as max_age from dual
      union all select 90 as min_age, 94 as max_age from dual
      union all select 95 as min_age, 99 as max_age from dual
    ) d
    group by emp.pay_plan, d.min_age, d.max_age, emp.pay_level, pay.fy;

    Paul - here are three different explain plans
    First, the original one (without the parallel hint):
    INSERT STATEMENT  ALL_ROWS                                              Cost: 26,684,255  Bytes: 114  Cardinality: 1                     
      35 LOAD AS SELECT EMPLOYEES_BY_AGE_GROUP                  
        34 HASH GROUP BY                                                    Cost: 26,684,255  Bytes: 114  Cardinality: 1                 
          33 NESTED LOOPS                                                   Cost: 26,684,254  Bytes: 114  Cardinality: 1               
            14 HASH JOIN                                                    Cost: 26,684,222  Bytes: 108  Cardinality: 1             
              9 MERGE JOIN                                                  Cost: 4,408,803  Bytes: 8,322  Cardinality: 146           
                3 VIEW DONBOT_DBA.                                          Cost: 114,863  Bytes: 29,625,180  Cardinality: 987,506         
                  2 WINDOW SORT PUSHED RANK                                 Cost: 114,863  Bytes: 35,550,216  Cardinality: 987,506       
                    1 TABLE ACCESS FULL TABLE EMPLOYEE_BIRTHDATES           Cost: 108,983  Bytes: 35,550,216  Cardinality: 987,506     
                8 SORT JOIN                                                 Cost: 4,293,940  Bytes: 3,645  Cardinality: 135         
                  7 VIEW DONBOT_DBA.                                        Cost: 4,293,939  Bytes: 3,645  Cardinality: 135       
                    6 SORT GROUP BY                                         Cost: 4,293,939  Bytes: 4,185  Cardinality: 135     
                      5 TABLE ACCESS BY INDEX ROWID TABLE PAY_INFO          Cost: 4,293,938  Bytes: 4,185  Cardinality: 135   
                        4 INDEX RANGE SCAN INDEX PAY_INFO_INDEX_ON_SITE     Cost: 487,124  Cardinality: 402,683,034 
              13 VIEW DONBOT_DBA                                            Cost: 22,275,300  Bytes: 1,160,143,257  Cardinality: 22,747,907           
                12 WINDOW SORT                                              Cost: 22,275,300  Bytes: 841,672,559  Cardinality: 22,747,907         
                  11 TABLE ACCESS BY INDEX ROWID TABLE EMPLOYEE_INFO        Cost: 22,137,046  Bytes: 841,672,559  Cardinality: 22,747,907       
                    10 INDEX RANGE SCAN INDEX EMPLOYEE_INFO_INDEX_ON_SITE   Cost: 50,419  Cardinality: 38,019,281     
            32 VIEW DONBOT_DBA
              31 UNION-ALL           
                15 FAST DUAL  Cost: 2  Cardinality: 1         
                16 FAST DUAL  Cost: 2  Cardinality: 1         
                17 FAST DUAL  Cost: 2  Cardinality: 1         
                18 FAST DUAL  Cost: 2  Cardinality: 1         
                19 FAST DUAL  Cost: 2  Cardinality: 1         
                20 FAST DUAL  Cost: 2  Cardinality: 1         
                21 FAST DUAL  Cost: 2  Cardinality: 1         
                22 FAST DUAL  Cost: 2  Cardinality: 1         
                23 FAST DUAL  Cost: 2  Cardinality: 1         
                24 FAST DUAL  Cost: 2  Cardinality: 1         
                25 FAST DUAL  Cost: 2  Cardinality: 1         
                26 FAST DUAL  Cost: 2  Cardinality: 1         
                27 FAST DUAL  Cost: 2  Cardinality: 1         
                28 FAST DUAL  Cost: 2  Cardinality: 1         
                29 FAST DUAL  Cost: 2  Cardinality: 1         
                30 FAST DUAL  Cost: 2  Cardinality: 1          Next, one with the parallel hint:
    INSERT STATEMENT  ALL_ROWS                                                                              Cost: 26,507,111  Bytes: 114  Cardinality: 1                                       
      51 LOAD AS SELECT EMPLOYEES_BY_AGE_GROUP
        50 PX COORDINATOR                                          
          49 PX SEND QC (RANDOM) PARALLEL_TO_SERIAL SYS.:TQ10005 :Q1005                                     Cost: 26,507,111  Bytes: 114  Cardinality: 1                                 
            48 HASH GROUP BY PARALLEL_COMBINED_WITH_PARENT :Q1005                                           Cost: 26,507,111  Bytes: 114  Cardinality: 1                               
              47 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1005                                            Cost: 26,507,111  Bytes: 114  Cardinality: 1                             
                46 PX SEND HASH PARALLEL_TO_PARALLEL SYS.:TQ10004 :Q1004                                    Cost: 26,507,111  Bytes: 114  Cardinality: 1                           
                  45 HASH GROUP BY PARALLEL_COMBINED_WITH_PARENT :Q1004                                     Cost: 26,507,111  Bytes: 114  Cardinality: 1                         
                    44 NESTED LOOPS PARALLEL_COMBINED_WITH_PARENT :Q1004                                    Cost: 26,507,111  Bytes: 114  Cardinality: 1                       
                      25 HASH JOIN PARALLEL_COMBINED_WITH_PARENT :Q1004                                     Cost: 26,507,109  Bytes: 108  Cardinality: 1                     
                        17 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1004                                  Cost: 4,301,500  Bytes: 4,104  Cardinality: 72                   
                          16 PX SEND HASH PARALLEL_TO_PARALLEL SYS.:TQ10003 :Q1003                          Cost: 4,301,500  Bytes: 4,104  Cardinality: 72                 
                            15 HASH JOIN PARALLEL_COMBINED_WITH_PARENT :Q1003                               Cost: 4,301,500  Bytes: 4,104  Cardinality: 72               
                              7 BUFFER SORT PARALLEL_COMBINED_WITH_CHILD :Q1003           
                                6 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1003                           Cost: 4,293,939  Bytes: 1,809  Cardinality: 67           
                                  5 PX SEND BROADCAST PARALLEL_FROM_SERIAL SYS.:TQ10000                     Cost: 4,293,939  Bytes: 1,809  Cardinality: 67         
                                    4 VIEW DONBOT_DBA.                                                      Cost: 4,293,939  Bytes: 1,809  Cardinality: 67       
                                      3 SORT GROUP BY                                                       Cost: 4,293,939  Bytes: 2,077  Cardinality: 67     
                                        2 TABLE ACCESS BY INDEX ROWID TABLE PAY_INFO                        Cost: 4,293,938  Bytes: 2,077  Cardinality: 67   
                                          1 INDEX RANGE SCAN INDEX PAY_INFO_INDEX_ON_SITE                   Cost: 487,124  Cardinality: 199,756,151 
                              14 VIEW PARALLEL_COMBINED_WITH_PARENT DONBOT_DBA. :Q1003                      Cost: 7,561  Bytes: 29,625,180  Cardinality: 987,506             
                                13 WINDOW SORT PUSHED RANK PARALLEL_COMBINED_WITH_PARENT :Q1003             Cost: 7,561  Bytes: 35,550,216  Cardinality: 987,506           
                                  12 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1003                        Cost: 7,561  Bytes: 35,550,216  Cardinality: 987,506         
                                    11 PX SEND HASH PARALLEL_TO_PARALLEL SYS.:TQ10002 :Q1002                Cost: 7,561  Bytes: 35,550,216  Cardinality: 987,506       
                                      10 WINDOW CHILD PUSHED RANK PARALLEL_COMBINED_WITH_PARENT :Q1002      Cost: 7,561  Bytes: 35,550,216  Cardinality: 987,506     
                                        9 PX BLOCK ITERATOR PARALLEL_COMBINED_WITH_CHILD :Q1002             Cost: 7,557  Bytes: 35,550,216  Cardinality: 987,506   
                                          8 TABLE ACCESS FULL TABLE PARALLEL_COMBINED_WITH_PARENT EMPLOYEE_BIRTHDATES :Q1002     Cost: 7,557  Bytes: 35,550,216  Cardinality: 987,506 
                        24 BUFFER SORT PARALLEL_COMBINED_WITH_CHILD :Q1004                 
                          23 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1004                                Cost: 22,205,605  Bytes: 575,504,145  Cardinality: 11,284,395                 
                            22 PX SEND HASH PARALLEL_FROM_SERIAL SYS.:TQ10001                               Cost: 22,205,605  Bytes: 575,504,145  Cardinality: 11,284,395               
                              21 VIEW DONBOT_DBA.                                                           Cost: 22,205,605  Bytes: 575,504,145  Cardinality: 11,284,395             
                                20 WINDOW SORT                                                              Cost: 22,205,605  Bytes: 417,522,615  Cardinality: 11,284,395           
                                  19 TABLE ACCESS BY INDEX ROWID TABLE EMPLOYEE_INFO                        Cost: 22,137,046  Bytes: 417,522,615  Cardinality: 11,284,395         
                                    18 INDEX RANGE SCAN INDEX EMPLOYEE_INFO_INDEX_ON_SITE                   Cost: 50,419  Cardinality: 18,859,958       
                      43 VIEW PARALLEL_COMBINED_WITH_PARENT DONBOT_DBA. :Q1004                              Cost: 32  Bytes: 6  Cardinality: 1                     
                        42 UNION-ALL PARALLEL_COMBINED_WITH_PARENT :Q1004                 
                          26 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          27 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          28 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          29 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          30 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          31 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          32 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          33 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          34 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          35 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          36 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          37 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          38 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          39 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          40 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                 
                          41 FAST DUAL PARALLEL_COMBINED_WITH_PARENT :Q1004         Cost: 2  Cardinality: 1                  Finally, one without the parallel hint, and without the index hint on PAY_TABLE:
    INSERT STATEMENT  ALL_ROWS                                              Cost: 23,348,654  Bytes: 114  Cardinality: 1                   
      34 LOAD AS SELECT ARMYMP.EMPLOYEES_BY_AGE                
        33 HASH GROUP BY                                                    Cost: 23,348,654  Bytes: 114  Cardinality: 1               
          32 NESTED LOOPS                                                   Cost: 23,348,653  Bytes: 114  Cardinality: 1             
            13 HASH JOIN                                                    Cost: 23,348,621  Bytes: 108  Cardinality: 1           
              8 MERGE JOIN                                                  Cost: 1,073,202  Bytes: 8,322  Cardinality: 146         
                3 VIEW DONBOT_DBA.                                          Cost: 114,863  Bytes: 29,625,180  Cardinality: 987,506       
                  2 WINDOW SORT PUSHED RANK                                 Cost: 114,863  Bytes: 35,550,216  Cardinality: 987,506     
                    1 TABLE ACCESS FULL TABLE EMPLOYEE_BIRTHDATES           Cost: 108,983  Bytes: 35,550,216  Cardinality: 987,506   
                7 SORT JOIN                                                 Cost: 958,339  Bytes: 3,645  Cardinality: 135       
                  6 VIEW DONBOT_DBA.                                        Cost: 958,338  Bytes: 3,645  Cardinality: 135     
                    5 SORT GROUP BY                                         Cost: 958,338  Bytes: 4,185  Cardinality: 135   
                      4 TABLE ACCESS FULL TABLE PAY_INFO                    Cost: 958,337  Bytes: 4,185  Cardinality: 135 
              12 VIEW DONBOT_DBA.                                           Cost: 22,275,300  Bytes: 1,160,143,257  Cardinality: 22,747,907         
                11 WINDOW SORT                                              Cost: 22,275,300  Bytes: 841,672,559  Cardinality: 22,747,907       
                  10 TABLE ACCESS BY INDEX ROWID TABLE EMPLOYEE_INFO        Cost: 22,137,046  Bytes: 841,672,559  Cardinality: 22,747,907     
                    9 INDEX RANGE SCAN INDEX EMPLOYEE_INFO_UIC              Cost: 50,419  Cardinality: 38,019,281   
            31 VIEW DONBOT_DBA.                                             Cost: 32  Bytes: 6  Cardinality: 1           
              30 UNION-ALL         
                14 FAST DUAL  Cost: 2  Cardinality: 1       
                15 FAST DUAL  Cost: 2  Cardinality: 1       
                16 FAST DUAL  Cost: 2  Cardinality: 1       
                17 FAST DUAL  Cost: 2  Cardinality: 1       
                18 FAST DUAL  Cost: 2  Cardinality: 1       
                19 FAST DUAL  Cost: 2  Cardinality: 1       
                20 FAST DUAL  Cost: 2  Cardinality: 1       
                21 FAST DUAL  Cost: 2  Cardinality: 1       
                22 FAST DUAL  Cost: 2  Cardinality: 1       
                23 FAST DUAL  Cost: 2  Cardinality: 1       
                24 FAST DUAL  Cost: 2  Cardinality: 1       
                25 FAST DUAL  Cost: 2  Cardinality: 1       
                26 FAST DUAL  Cost: 2  Cardinality: 1       
                27 FAST DUAL  Cost: 2  Cardinality: 1       
                28 FAST DUAL  Cost: 2  Cardinality: 1       
                29 FAST DUAL  Cost: 2  Cardinality: 1        I am surprised the cost without the index is less than the cost with it, considering that it is replacing a Table Access By Index Rowid with a Table Access Full on a table with 1 billion (1000 million) records.
    Igor - two questions:
    One - I cannot find "Materialize" in the hints in the SQL Reference anywhere. What does it do?
    Two - does replacing subqueries with With clauses make that much of a difference?

  • How to use "User Events" in different parts of an application

    Hi,
    "You programmatically can create and name your own events, called user events, to carry user-defined data. Like queues and notifiers, user events allow different parts of an application to communicate asynchronously. You can handle both user interface and programmatically generated user events in the same Event structure."
    What you read was part of labview 7.1 user manual ( Chapter 9 - pg.12 ). I've some problems with the underlined sentence. I hope someone can help me.
    When using Queues, the programmer may use a named queue everywhere in the application. there is no need to wire queue reference among VIs or using global variables to store queue reference. the name of the queue will be all that you need. I wonder if it is also possible with a event refnum that is the output of "Register for Event" node. As far as I've tested. the answer is Negative! I tried to copy-paste refnum in front panels and using the same name. but there is no connection between event refnums.
    LV User manual claims that user events can be used like queues, but it doesn't seem so.
    Does anybody have an idea?
    Best Regards.

    I didn't look at Damien Gray's presentation recently, but if I remember it correctly, it is on a much higher level than what I meant, because it refers to LARGE application. This is a very simple one.
    Using a functional global is not problematic CPU-wise, nor memory wise (unless you get into really big data structures, like hundreds of MBs), so you shouldn't be afraid to use it. I'm also not sure why you're afraid of the loop. The loop is only there to "hold" the USR. It only runs once. If you want, you can replace it with a for loop that runs once. I've recently learned that apparently, you can also get rid of the loop and use a local variable (look at the example called XY chart) instead of a USR. I don't think a local variable should have any more impact than a USR, but that needs to be tested. It can definitely be more convenient for some VIs where you don't have to wire the SR through the entire VI.
    Anyway, you will need to have an "obtain ref" VI which will hold a 1D array of names and a corresponding array of refs. Then, you search the array for the name, and if it finds the name, it extracts the correct reference. You will also need a way to input references and names into the array and possibly a way to empty the array. You may need to have 2 levels - the inner VI will be the LV2 VI and the parent will be the obtain ref\fill array\close VI. You will need some error handling as well - what happens if you search for a name and it can't be found and so on...
    Hope this helps.
    Try to take over the world!

  • How to select different parts of the text? cmd button no longer does that...

    After installing Maverics i can no longer propertly edit my work as I cannot mark different parts of text using cmd button. Shift works as before for highlighting all the text from starting point to selected point but I can no longer use cmd to highlight different areas of the text. Is this an OS bug? Or was the button for selecting different parts of the text changed? I tried everything...

    It's just a small part of what makes Pages 5 so "stunning" (Apple's word). You think stripping out the nifty ability to mark non-contiguous passages of text was neat? Sure that was nice. But Apple has gotten rid of more, so much more. And for free!
    Just wait till you put the product through its paces and you discover other nice features that are missing, such as (but not limited to):
    - no linking of text boxes!  Yes, that's right. Now a newsletter that had a "continued on page 6" or whatever will be broken by Pages 5. Stunning! (Even more stunning, Pages 5 will strip out all sorts of formatting from documents created with Pages 4.3 and it will do ao without warning and will save the document in a NEW unified file format so that it cannot be opened by Pages 4.3, thereby potentially losing users hours and hours of work. Stunning!
    There's more!
    - Pages 5 has no mail merge, no bookmarks, no images in headers/footers! Pages 4.3 has those features, but this stunning new release removes them.
    - Pages 5 features vastly reduced and simplified set of templates (there used to be about 130 Apple-cupplied templates, now there are about 60).
    - Page 5 also boasts NO RTF SUPPORT, so a paper your wrote with Apple's own TextEdit is not natively readable with Pages: Stunning!
    - No detail was too small to omit in this stunning new release: the vertical ruler, so you can easily place text or an obejct at a certain place in a document: gone! Setting the default zoom: gone!  Status bar reproting word count and pagecount (e.g., Page 4 of 48): Gone! View comments in the left side bar: Gone!  Autocapitalization: Gone! Search & Replace: drastically simplified!
    But here's the really good news: Pages 5 is just PERFECT for creating a one page-poster advertising a new concert by Apple employee Eddie Cue. What's more you can collaborate on it with someone else, even if they're using a PC. Now that's "stunning"!

  • Adobe Acrobat Standard 9.0- 2 different part numbers?

    I see two different part numbes while shopping for Adobe Acrobat Standard 9.0. 22002418 and 22002420. Does anyone know the difference?

    I don't know about the numbers, though it appears to be related to specific versions. For instance, you have a full retail version and an OEM version with the same number (only OEM added). There is a DVD version supposedly. What raises flags for me are the Retail versus 1 user versions. As far as I know, all versions are 1 user unless you are purchasing a volume license. The other flag is the sale of the OEM version on line. That is not consistent with the OEM process. You may be able to purchase a legit copy at this location, but you are taking a risk. The site looks perfectly legit, but most bogus sites do. Good luck in whatever decision you make.

  • Reg: Error in Parallel Hint -

    Hi Experts,
    I have a concern regarding the usage of parallel hint with DOP = "AUTO".
    Getting these errors while the ETL job(s) are executed with /*+ PARALLEL(AUTO) */
    JOB - 1
    java.sql.SQLException: ORA-12853: insufficient memory for PX buffers: current 1159024K, max needed 11666304K
    ORA-04031: unable to allocate 65560 bytes of shared memory ("large pool","unknown object","large pool","PX msg pool")
    JOB - 2
    java.sql.SQLException: ORA-12801: error signaled in parallel query server P256
    ORA-12853: insufficient memory for PX buffers: current 1159024K, max needed 11666304K
    ORA-04031: unable to allocate 65560 bytes of shared memory ("large pool","unknown object","large pool","PX msg pool")
    I tried google but couldn't get an appropriate reason for this and also fix.
    1- Do I need to increase some memory buffer related parameter?
    2- Does "AUTO" option causing this? And will using a DOP = 3, 4, etc. guarantee to fix this?
    (I will try this and check but want to know the exact reason, so that it doesn't cause any problem in Prod)
    Any pointers regarding this.
    -- Ranit
    ( on Oracle 11.2.0.3.0 )

    ranit B wrote:
    Getting these errors while the ETL job(s) are executed with /*+ PARALLEL(AUTO) */
    JOB - 1
    java.sql.SQLException: ORA-12853: insufficient memory for PX buffers: current 1159024K, max needed 11666304K
    ORA-04031: unable to allocate 65560 bytes of shared memory ("large pool","unknown object","large pool","PX msg pool")
    JOB - 2
    java.sql.SQLException: ORA-12801: error signaled in parallel query server P256
    ORA-12853: insufficient memory for PX buffers: current 1159024K, max needed 11666304K
    ORA-04031: unable to allocate 65560 bytes of shared memory ("large pool","unknown object","large pool","PX msg pool")
    I tried google but couldn't get an appropriate reason for this and also fix.
    1- Do I need to increase some memory buffer related parameter?
    2- Does "AUTO" option causing this? And will using a DOP = 3, 4, etc. guarantee to fix this?
    (I will try this and check but want to know the exact reason, so that it doesn't cause any problem in Prod)
    Any pointers regarding this.
    -- Ranit
    ( on Oracle 11.2.0.3.0 )
    The error message is pretty self-explanatory: The memory that is required for communication between PX Servers ("PX msg pool") can either be allocated from the Shared Pool or the Large Pool - depending on some other settings. In your case obviously the memory is taken from the Large Pool, and the error message says that it needs approx. 12GB of memory from the Large Pool which isn't available. I'm not sure however if that error message is really showing a reasonable "needed" value because 12GB for the "PX msg pool" is much more than what you should get for reasonable DOP values according to the underlying formula.
    So you either need to change the settings (depends on how the memory is configured / static allocation or *target* parameters and the parallel_automatic_tuning (deprecated) parameter, internally the "_PX_use_large_pool" parameter) to move the allocation to the Shared Pool, or much simpler, increase the size of the Large Pool accordingly.
    Although I doubt the "needed" value of 12GB you should nevertheless review your AUTO DOP parameter settings since the values shown for the "PX msg pool" could indicate that the DOP chosen seems to be pretty high. You can find that information in the "Notes" section when you get the corresponding plan from the Library Cache using "DBMS_XPLAN.DISPLAY_CURSOR", or using EXPLAIN PLAN and DBMS_XPLAN.DISPLAY, or may be even from AWR if you have the license using DBMS_XPLAN.DISPLAY_AWR.
    For example it might make sense to lower your PARALLEL_DEGREE_LIMIT parameter value to some explicit value rather than using the default value of CPU. Also you should review your I/O calibration results in the DBA_RSRC_IO_CALIBRATE view - and there the MAX_PMBPS value. This is the relevant value that is used to determine the DOP - see my blog post Oracle related stuff: Cost Is Time: Next Generation
    Randolf

Maybe you are looking for

  • How to get past the grey start up screen after mavericks update

    I have recently installed a free update of Mavericks on the App store. However after installing this, the Macbook Pro that i've installed on will not boot beyond the Grey start up screen. I was running Snow Leopard on a machine with intel core 2 duo

  • BW report to display ME2N

    Hi All, Is there a Standard report/infoproviders which can be used to display me2n transaction - PO information. Thanks in advance. Monica.

  • Exception: "The type "Collection" as used in the variable/parameter declarations

    I am getting the following exception when I try to run the test code. What could be causing it ? I am running Kodo 2.4.3 with JDK 1.4.1 EXCEPTION javax.jdo.JDOFatalInternalException: [agencyNames:[AGENCY1, AGENCY2]] NestedThrowables: javax.jdo.JDOUse

  • Booklet Printing - HP 4600dn

    Hi - I am trying to do a Booklet Print of a 20-page pdf document, which appears to work successfully, except that the reverse pages are printed upside down. (i.e. back of page 1 is page 19 inverted). Printer is a HP 4600dn The document opens in Adobe

  • Oracle Client Version

    Hi, We are on PT 8.46.04 and FSCM 8.8 and planning to upgrade the Batch NT server Hardware running on Windows Server 2000 SP4 to WIndows Server 2003. We are also upgrading the Oracle database from 9.0.2.1.0 to 10g. My question is, do we need to upgra