Parallel execution

Hello

I would like to know if there is any provision in oracle for procedures parallel execution in the same package. I suggested to my friend to create the DBMS work and start both at the same time to run in parallel. Apart from that we have any parallel concept of the performance/multi-threading in the oracle procedure?

Kind regards
Vimal

I don't know what is your procedure and why you must run in parallel, but I suggest you look at DBMS_Parallel_Execute package(11g) to perform an update in parallel or parallel Function (PARALLEL_ENABLE).

Tags: Database

Similar Questions

  • Two parallel executions, calling a DLL function

    Hello

    Since this test takes about 6 hours to test my USE, I plan to use the parallel model to test 2 UUT at the same time in parallel.

    I implement the test code as a DLL of CVI.

    However, to my surprise, it seems that the steps that call a DLL function actually traveled in one series, not in parallel:

    Test 2 power outlets if one enters and executes a DLL works, the other waits for the first to complete its operation and return. While the other runs on the same copy of the DLL, so that the DLL global variables are actually shared between executions.

    So if a DLL will take 5 minutes to complete, two executions in the running at the same time take 10 minutes. This isn't a running in parallel in every way.

    What I want and expect also TestStand, was to completely isolate the copies of these two executions DLL such as test two casings could run at the same time the same DLL function by arbitrary executiong their copy of the function, completely isolated from one another.

    So they separated globals, discussions, etc., and two parallel jacks take 5 minutes to run a step, instead of 10.

    Such a scenario is possible?

    If not, how can I use my test in parallel (in truly parallel) when the use of 2-socket test?

    (1) Yes, he'll call the multiple executions in TestStand calling into the same dll in memory the same copy of this DLL. Thus dll called in this way must be thread-safe (that is written in a way that is safe for multiple threads running the code at the same time). This means usually avoiding the use of global variables among other things. Instead, you can store the thread shows in local variables within your sequence and pass it in the dll as a parameter as needed. Keep in mind all the DLLs your dll calls must also be thread-safe or you need to synchronize calls in other DLLs with locks or other synchronization primitives.

    1 (b) even if your dll are not thread-safe, you might still be able to get some benefits from parallel execution using the type of automatic planning step and split your sequence in independent sections, which can be performed in an order any. What it will do is allow you to run Test a socket A and B Test to another socket in parallel, and then once they are then perhaps test B will take place on one and test one run on the other. In this way, as long as each test is independent of the other you can safely run them in parallel at the same time even if it is not possible to run the same test in parallel at the same time (that is, if you can not run test on two Sockets at the same time, you might still be able to get an advantage of parallelism by running the Test B in one take during the tests in the other. See the online help for the type of step in autoscheduling for more details).

    (2) taken executions (and all executions of TestStand really) are threads separated within the same process. Since they are in the same process, the global variables in the dll are essentially shared between them. TestStand Station globals are also shared between them. TestStand Globals file, however, are not shared between runs (each run gets its own copy) unless you enable the setting in the movie file properties dialog box.

    (3) course, using index as a way to distinguish data access are perfectly valid. Just be careful that what each thread does not affect data that other threads have access. For example, if you have a global network with 2 elements, one for each grip test, you can use safely the decision-making of index in the table and in this way are not sharing data between threads even if you use a global variable, but the table should be made from the outset before start running threads , or it must be synchronized in some way, otherwise it is possible to have a thread tries to access the data, while the other thread is created. Basically, you need to make sure that if you use global data which the creation/deletion, modification and access in a thread does not affect the global data that the other thread use anyway in or we must protect these creation/deletion, modification and access to global data with locks, mutex or critical sections.

    Hope this helps,

    -Doug

  • There is a configuration option that allows the parallel execution of sub vi?

    I'm trying to run a vi in teststand has two parallel execution paths. A path under vi implements the trigger and wait for data from a module scope, while in the other lane, I'm starting a power supply. The power waits until the scope is armed and runs.

    It works as a standalone vi. When I try to run this vi in teststand he works the first vi scope and then runs the power supply. Of course vi opportunities get to expiration and outputs and data are not met.

    I tried a number of methods of synchronization, and although they seem to work standalone, as soon as I try them in Testsatnd I have this problem.

    I am new to teststand and I was wondering if there is some configuration config I missed which allows a vi like this to run as he's independent.

    I have a number of simple screws that run as planned, but this one left me speechless.

    I had to split these screws but would really prefer to have them in the same vi.

    (The latest versions of teststand and Labview running)

    Henry

    hkroker,

    It is a known problem. Please refer to the following KB to help solve your problem.

    - Parallel blocks run sequentially why does my LabVIEW VI when it is called from TestStand?

    Concerning

    Anand jegou

    National Instruments

  • Question about lesson 1-7, slide 2: Iterable.forEach () and parallel execution

    As stated in the previous parts of this lesson, the library can choose to run lambda expressions in parallel.

    In the example: the final execution using Iterable.forEach () result will be same as using a traditional loop?

    Using a traditional loop that you are sure that the items in the list are printed in the order they are in the list.

    This is not always true using Iterable.forEach (), since the items could be printed by different threads?

    "... the library can choose to perform lambda expressions in parallel."

    I wanted to clarify a little.

    The general rule is that parallel execution can occur if the particular library used API allows him, and it is usually under the control of the programmer. For example, lambdas in parallel flow (which will be addressed later in the MOOC) can be run in parallel, but the programmer must explicitly request parallelism. If the API says nothing about parallel (or asynchronous) execution, then those that don't occur.

    If Iterable.forEach runs sequentially, and the underlying class specified an order, the execution will take place in this order.

  • 12 c parallel execution Plans

    Hello world

    I have a little a problem of performance on 12 c that gives me a little trouble at the head. I moved from 11 to 12 databases and no amendment of the application have been made. Our requests are generated somewhat dynamically, so that they are the same thing every time.

    Let's start with the execution plan I get:

    SQL > select * from table (dbms_xplan.display ());


    PLAN_TABLE_OUTPUT

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Hash value of plan: 3567104424

    -----------------------------------------------------------------------------------------------------------------------------------------------------------

    | ID | Operation                                            | Name                  | Lines | Bytes | Cost (% CPU). Time |    TQ | IN-OUT | PQ Distrib.

    -----------------------------------------------------------------------------------------------------------------------------------------------------------

    |   0 | SELECT STATEMENT |                       |    55.  7095 |  3764 (1) | 00:00:01 |        |      |            |

    |   1.  COORDINATOR OF PX |                       |       |       |            |          |        |      |            |

    |   2.   PX SEND QC (ORDER). : TQ10006 |    55.  7095 |  3764 (1) | 00:00:01 |  Q1, 06 | P > S | QC (ORDER).

    |   3.    SORT ORDER BY |                       |    55.  7095 |  3764 (1) | 00:00:01 |  Q1, 06 | SVCP |            |

    |   4.     PX RECEIVE                                       |                       |    55.  7095 |  3763 (1) | 00:00:01 |  Q1, 06 | SVCP |            |

    |   5.      RANGE OF SEND PX | : TQ10005 |    55.  7095 |  3763 (1) | 00:00:01 |  Q1, 05 | P > P | RANGE |

    |   6.       UNIQUE FATE |                       |    55.  7095 |  3763 (1) | 00:00:01 |  Q1, 05 | SVCP |            |

    |*  7 |        HASH JOIN                                     |                       |    55.  7095 |  3762 (1) | 00:00:01 |  Q1, 05 | SVCP |            |

    |   8.         PX RECEIVE                                   |                       |   801 | 50463 |  3696 (1) | 00:00:01 |  Q1, 05 | SVCP |            |

    |   9.          PX SEND HASH | : TQ10003 |   801 | 50463 |  3696 (1) | 00:00:01 |  Q1, 03 | P > P | HASH |

    | * 10 |           HASH JOIN                                  |                       |   801 | 50463 |  3696 (1) | 00:00:01 |  Q1, 03 | SVCP |            |

    |  11.            RECEIVE PX |                       |   801 | 40851 |  2333 (1) | 00:00:01 |  Q1, 03 | SVCP |            |

    |  12.             PX SEND BROADCAST | : TQ10002 |   801 | 40851 |  2333 (1) | 00:00:01 |  Q1, 02 | P > P | BROADCAST |

    |  13.              NESTED LOOPS |                       |   801 | 40851 |  2333 (1) | 00:00:01 |  Q1, 02 | SVCP |            |

    |  14.               KIND OF BUFFER.                       |       |       |            |          |  Q1, 02 | ISSUE |            |

    |  15.                RECEIVE PX |                       |       |       |            |          |  Q1, 02 | SVCP |            |

    |  16.                 PX SEND HASH | : TQ10000 |       |       |            |          |        | S > P | HASH |

    |  17.                  NESTED LOOPS |                       |   823. 31274 |  1509 (1) | 00:00:01 |        |      |            |

    | * 18.                   TABLE ACCESS BY ROWID INDEX BATCH | PAGED_LOOKUP_PKS |   500 |  9500 |     3 (0) | 00:00:01 |        |      |            |

    | * 19.                    INDEX RANGE SCAN | PAGED_LOOKUP_PKS_IDX2 |     1.       |     2 (0) | 00:00:01 |        |      |            |

    |  20.                   TABLE ACCESS BY ROWID INDEX BATCH | BILL_ITEM |     2.    38.     4 (0) | 00:00:01 |        |      |            |

    | * 21.                    INDEX RANGE SCAN | BILL_ITEM_FK2 |     4.       |     2 (0) | 00:00:01 |        |      |            |

    | * 22.               INDEX UNIQUE SCAN | PK_INSERTION |     1.    13.     1 (0) | 00:00:01 |  Q1, 02 | SVCP |            |

    |  23.            ITERATOR BLOCK PX |                       |  1548K |    17 M |  1353 (2) | 00:00:01 |  Q1, 03 | ISSUE |            |

    |  24.             FULL RESTRICTED INDEX SCAN FAST | BOOKING_ACCOUNT_1 |  1548K |    17 M |  1353 (2) | 00:00:01 |  Q1, 03 | SVCP |            |

    |  25.         PX RECEIVE                                   |                       | 22037 |  1420K |    65 (2) | 00:00:01 |  Q1, 05 | SVCP |            |

    |  26.          PX SEND HASH | : TQ10004 | 22037 |  1420K |    65 (2) | 00:00:01 |  Q1, 04 | S > P | HASH |

    |  27.           SELECTOR PX |                       |       |       |            |          |  Q1, 04 | SCWC |            |

    |  28.            TABLE ACCESS FULL | CONTACT | 22037 |  1420K |    65 (2) | 00:00:01 |  Q1, 04 | SCWP |            |

    -----------------------------------------------------------------------------------------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):

    ---------------------------------------------------

    7 - access ("ACCOUNT_ID" ="ACCOUNT_ID")

    10 - access ("BOOKING" ="BOOKING")

    18 - filter("T1".") SEQUENCE_NO' < 501 AND "T1". ("' SEQUENCE_NO" > = 1).

    19 - access("T1".") SESSION_ID '= 123456 AND 'T1'.' SEARCH_ID "= 25)

    21 - access("T1".") N1 "=" BILL_ID")

    22 - access ("BOOKING" = "BOOKING" AND "INSERTION_SET" = "INSERTION_SET" AND "INSERT"="INSERT")

    Note

    -----

    -the dynamic statistics used: dynamic sampling (level = 2)

    -This is an adaptation plan

    -2 directives Plan Sql used for this statement

    51 selected lines.

    Elapsed time: 00:00:00.15

    SQL > spool off

    OK, now let's go through the problem:

    1. It's a development running on a virtual server, and which hosts a few other databases, so the parallel execution is not a good thing. parallel_degree_policy is set to MANUAL, parallel_max_servers and all other parallel_ limits are set to 1 and tables have been changed with the settings of NOPARALLEL. So why is the execution plan always generated with all stages of parallel execution? I don't seem to get rid of in 12 c
    2. Next mystery is that the said plan of the explain command is an adaptation plan, and yet I put the true optimizer_adaptive_reproting_only
    3. Now to the problem of effective enforcement, so I'm playing around with all these settings. The query runs for 3-4 seconds, returning around about 500 cases. However, in some cases this same query with the same input variable races for hours and if I can believe the AWR and ASH reports, read a good 180 GB of data. The main wait event is direct path read temp temp and writing.


    This is not isolated to that one query. I have a few queries now that all display the same behavior, one of them running overnight. I don't seem to get to a standard nested loop execution plans.


    The entire base is a database plug-in and I don't know I just missed something in the new features Guide.

    Would appreciate some ideas.

    Thank you

    If you want to disable parallel execution, you must set parallel_max_servers to zero.  Maybe the optimizer thinks he can use a parallel plan because parallel_max_servers is non-zero (even though the number of slaves available means that it will be serialized to a parallel plan).

    Note that you have a ticket saying dynamic stats have been used.  Maybe you have a 11 for optimizer_dynamic_sampling setting, and allowing Oracle to be very inventive with collection of samples and parallelism.

    You have also 2 SQL instructions in game. These are the things that get associated with objects rather than the instructions, then perhaps someone has been playing with parallelism and managed to associate the parallelism with one of the tables in your query (I am not sure 100% that it is possible, just throw a suggestion).  Take a look at the SQL used for education guidelines.

    To give us a little more information, you can:

    Shoot memory execution plan dbms_xplan.display_cursor ({sql_id}, {number of children}, 'ALL'));

    We show all the parallel settings (see setting the parallel)

    Pull on the parameters of the optimizer for query memory (select name, value of V$ sql_optimizer_env where sql_id = {your sql identifier} and child_number = {your child number})

    Concerning

    Jonathan Lewis

  • info of parallel execution in the plan of the explain command

    In terms of explaining it, he learns you if a query is running in parallel? If so, what parts give you information about parallel execution?

    a parallel plan contains a large number of obvious differences if compared to a corresponding series plan: you should see a few operations beginning with the prefix of PX. In addition, it is more difficult to interpret a plane parallel (at least for me). Randolf Geist explains the basics (and more) in his informative article: parallel understanding - execution part 1.

  • Parallel execution of multiple scripts

    Hi all
    I understand that aid of parallels that we can achieve the parallel execution of the queries(insert/update/delete).
    Question of my today, I would like to know if parallelism can be achieved for the following scenario.

    I have a script with an insert select statement and multiple merge statements and a few updates statements all on the same table.
    I have to run this script 12 times on the same table, once for each month of the year.
    Currently, we run for Jan (where record_date = '201001') commit, then run for February and so on.

    Every 12 months can be executed in parallel. One way I can think is to create 12 different scripts and kicking around the opening 12 sessions SQL more (all on the same table).
    Is there a better way to do this?

    Note: the data for each month will not affect other other data month.

    Kind regards
    AJ

    Creation of 12 different scripts would be a suboptimal solution and a maintenance nightmare. 1 set script and call 12 times with different settings would be a little better.
    1 creating a stored procedure with parameters and execute that procedure in the 12 times Planner would be even better, because everything works on the side server only.

    Your description is deliberately vague, so the possibility of blocking cannot be excluded.

    ----------
    Sybrand Bakker
    Senior Oracle DBA

  • Feature of the parallel execution of SQL query

    Hello guys,.

    I installed a 11 GR 2 Oracle RAC (11.2.0.3) database, but I see the use of the feature of running parallel SQL queries, but I never used that.

    I would like to know if this feature is enabled by default on CCR environments and if it does not require me to pay for Enterprise Edition.

    NAME DETECTED_USAGES FIRST_USA LAST_USAG CURRE

    ---------------------------------------------------------------- --------------- ----- --------- ---------

    Checking Options 1 TRUE 9 October 15 October 9, 15

    BMG Auto setting 1 TRUE 9 October 15 October 9, 15

    Memory of the execution of SQL auto 1 TRUE 9 October 15 October 9, 15

    Automatic management of the space Segment (System) 1 TRUE 9 October 15 October 9, 15

    Automatic Storage Management 1 TRUE 9 October 15 October 9, 15

    Management of the Undo Automatic 1 TRUE 9 October 15 October 9, 15

    Character set 1 TRUE 9 October 15 October 9, 15

    Deferred Segment creation 1 TRUE 9 October 15 October 9, 15

    Locally managed tablespaces (System) 1 TRUE 9 October 15 October 9, 15

    Locally managed tablespaces (user) 1 TRUE 9 October 15 October 9, 15

    Logfile multiplexing 1 TRUE 9 October 15 October 9, 15

    Oracle Java Virtual Machine (System) 1 TRUE 9 October 15 October 9, 15

    Oracle utility of metadata API 1 TRUE 9 October 15 October 9, 15

    1 SQL query in parallel TRUE 9 October 15 October 9, 15

    Partitioning (System) 1 TRUE 9 October 15 October 9, 15

    Real Application Clusters (RAC) 1 TRUE 9 October 15 October 9, 15

    Recovery zone 1 TRUE 9 October 15 October 9, 15

    SECUREFICHIERS (System) 1 TRUE 9 October 15 October 9, 15

    SECUREFICHIERS (user) 1 TRUE 9 October 15 October 9, 15

    The parameter server file 1 TRUE 9 October 15 October 9, 15

    Thanks in advance,

    Franky

    You are not, but Oracle is, since you are using RAC.  Oracle relies on execution in parallel against the gv$ views so even if you can't use it in SE way common Oracle can when it comes to query against one of the points of view gv$.  That's why DBA_FEATURE_USAGE_STATISTICS reports that you see.

    David Fitzjarrell

  • Wait for the mechanism in the parallel execution of packages

    Dear all,

    I submit two packets in parallel as below, which works very well.

    I present this in a shell script which is registered as a front end program.

    Front end program completed in a second, while the data are not visible in the tables, the data is visible only when the execution of the package completed.

    Please can you suggest a mechanism so that I can make the plsql block in shell script to wait for both the delivery of completed packages.

    #!/bin/sh                                                                                 |
    . $CUST_TOP/bin/CUST_ID_CM.env
    export INFA_USER=$INFA_USER
    export userpass=`(echo $1 | cut -f2 -d'"' | cut -d '"' -f3)`
    ploadtype=$5 
    pyear=$7
    #####################################################################
    if [ "$ploadtype" = "Restatement" ]; then
    sqlplus -s $userpass <<EOF
    set heading off feedback off verify off serveroutput on
    spool /usr/tmp/tmp_tph_load.txt
    DECLARE
      l_cnt NUMBER;
    BEGIN
      DBMS_SCHEDULER.CREATE_JOB(job_name            => 'YEARLY_RESTATEMENTS',
                                job_type            => 'STORED_PROCEDURE',
                                job_action          => 'RESTATEMENTS_DATAFEED_PKG.INSERT_RESTATEMENTS_P',
                                number_of_arguments => 1,
                                enabled             => FALSE,
                                auto_drop           => TRUE);
      DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(job_name          => 'YEARLY_RESTATEMENTS',
                                            argument_position => 1,
                                            argument_value    => '$7');
      DBMS_SCHEDULER.ENABLE('YEARLY_RESTATEMENTS');
      DBMS_SCHEDULER.CREATE_JOB(job_name            => 'YEARLY_ACTUALS',
                                job_type            => 'STORED_PROCEDURE',
                                job_action          => 'ACTUALS_DATAFEED_PKG.INSERT_ACTUALS_P',
                                number_of_arguments => 1,
                                enabled             => FALSE,
                                auto_drop           => TRUE);
      DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(job_name          => 'YEARLY_ACTUALS',
                                            argument_position => 1,
                                            argument_value    => '$7');
      DBMS_SCHEDULER.ENABLE('YEARLY_ACTUALS');
      LOOP
        SELECT COUNT(1)
          INTO l_cnt
          FROM DBA_SCHEDULER_RUNNING_JOBS
         WHERE UPPER(job_name) IN
               (UPPER('Yearly_Actuals'), UPPER('Yearly_Restatements'));
        EXIT WHEN l_cnt < 1;
      END LOOP;
    END;
    /
    EOF
    #
    fi
    exit
    

    Your problem is the timing. You can perform the check at DBA_SCHEDULER_RUNNING_JOBS before the entry is actually in there.

    Here is an example. I just submitted a PLSQL_BLOCK waiting for 60 seconds.

    SQL> DECLARE
      2    l_cnt NUMBER;
      3  BEGIN
      4    dbms_output.put_line(systimestamp || ' - Started');
      5    DBMS_SCHEDULER.CREATE_JOB(job_name            => 'YEARLY_RESTATEMENTS',
      6                              job_type            => 'PLSQL_BLOCK',
      7                              job_action          => 'BEGIN DBMS_LOCK.SLEEP(60); END;',
      8                              enabled             => FALSE,
      9                              auto_drop           => TRUE);
     10    DBMS_SCHEDULER.ENABLE('YEARLY_RESTATEMENTS');
     11
     12    LOOP
     13      SELECT COUNT(1) into l_cnt
     14        FROM DBA_SCHEDULER_RUNNING_JOBS
     15       WHERE UPPER(job_name) IN
     16             (UPPER('Yearly_Actuals'), UPPER('Yearly_Restatements'));
     17
     18      EXIT WHEN l_cnt < 1;
     19      dbms_output.put_line(systimestamp || ' - Waiting');
     20      dbms_lock.sleep(10);
     21    END LOOP;
     22    dbms_output.put_line(systimestamp || ' - Completed');
     23  END;
     24  /
    04-DEC-14 02.32.00.075794000 AM -05:00 - Started
    04-DEC-14 02.32.00.121862000 AM -05:00 - Completed
    
    PL/SQL procedure successfully completed.
    

    Now it ends immediately. But you can see that the job is still running.

    SQL>     SELECT COUNT(1)
      2        FROM DBA_SCHEDULER_RUNNING_JOBS
      3       WHERE UPPER(job_name) IN
      4             (UPPER('Yearly_Actuals'), UPPER('Yearly_Restatements'));
    
      COUNT(1)
    ----------
             1
    

    Now I make my code to wait 5 seconds before the audit

    SQL> DECLARE
      2    l_cnt NUMBER;
      3  BEGIN
      4    dbms_output.put_line(systimestamp || ' - Started');
      5    DBMS_SCHEDULER.CREATE_JOB(job_name            => 'YEARLY_RESTATEMENTS',
      6                              job_type            => 'PLSQL_BLOCK',
      7                              job_action          => 'BEGIN DBMS_LOCK.SLEEP(60); END;',
      8                              enabled             => FALSE,
      9                              auto_drop           => TRUE);
     10    DBMS_SCHEDULER.ENABLE('YEARLY_RESTATEMENTS');
     11
     12    -- Wait for a wile before checking
     13    dbms_lock.sleep(5);
     14    LOOP
     15      SELECT COUNT(1) into l_cnt
     16        FROM DBA_SCHEDULER_RUNNING_JOBS
     17       WHERE UPPER(job_name) IN
     18             (UPPER('Yearly_Actuals'), UPPER('Yearly_Restatements'));
     19
     20      EXIT WHEN l_cnt < 1;
     21      dbms_output.put_line(systimestamp || ' - Waiting');
     22      dbms_lock.sleep(10);
     23    END LOOP;
     24    dbms_output.put_line(systimestamp || ' - Completed');
     25  END;
     26  /
    04-DEC-14 02.33.09.294256000 AM -05:00 - Started
    04-DEC-14 02.33.14.347866000 AM -05:00 - Waiting
    04-DEC-14 02.33.24.369777000 AM -05:00 - Waiting
    04-DEC-14 02.33.34.389725000 AM -05:00 - Waiting
    04-DEC-14 02.33.44.410508000 AM -05:00 - Waiting
    04-DEC-14 02.33.54.430561000 AM -05:00 - Waiting
    04-DEC-14 02.34.04.450684000 AM -05:00 - Waiting
    04-DEC-14 02.34.14.462191000 AM -05:00 - Completed
    
    PL/SQL procedure successfully completed.
    
    SQL>
    

    Now you can see the code entered in the loop and waited.

  • Parallel execution of reentrancy vs vs LVOOP

    Hello

    Finally, I'm a little confused... I'm trying to implement a "test sequencer" based object (no TestStand not far ) on a quad core cpu. My basic idea was to define a test step as a class, instantiate objects up to four and call Execute screws running on these objects in parallel:

    In fact, it is, execute VI doing:

    What I play with the parameters of the Execute method of reentrancy is:

    Run STEPS environment--> 53900ms run time ~ @ ~ 27% (--> a single core) cpu load

    Run reentrant (part of the clones from the dynamic distribution terminals)--> 38400ms run time ~ @ 100% load (all four cores) cpu

    My interpretation is that spend from one to four cores, performance only increases by 30%. Is this possible or am I missing something fundamental?

    Thanks for your comments!

    Oli

    PS: in the course of running on LV2011


  • Why is this game of case statements do not parallel execution?

    I have the following Subvi:

    I had a similar version which had specific cases for specific devices, but I wanted to make it more generic. I tested their work in parallel before the Subvi to GET all THE DATA is re-entrant I wonder if the merge errors feature prevents cases work properly. Maybe having the error returned to the Subvi on the top of the terminal will make a difference? Just try to understand what is happening.

    RavensFan wrote:

    James,

    Why the constant true connected to the conditional tunnel?

    I was simulating a Subvi, which has a Boolean result. He did not share his code so I don't have the Subvi himself.

    I see now why OP does without a loop For, if there are more devices there carrots. The loop For could save code duplication to a minimum the number of cores.

  • Reg: Parallel Execution

    Hi Experts,

    I have this request below. I was wondering - w/o parallel hint, how you naturally to run in parallel.

    Select * from SC
    where
    There are)
    Select 1
    STI
    where
    STC. LNO = sti.lno and
    STI.act_id = 1 and
    STI.codec in ('2697', '6697', '2737', '6737', '3886', '7886', '2692',' 6692',
    '3483 ', '7483', '500', '800', '501', '801' ', 3888',' 7888 ', ' 3887',
    "7887 ', '3946', '7946', '3945', '7945' ', 3944',' 7944 ', ' 3953',
    "7953 ', '3954', '7954', '3955', '7955' ', 3481',' 3482 ', ' 7481',
    "7482 ', '3960', '7960', '4072', '8072' ', 4284',' 8284 ', ' 4343',
    "8343 ', '4499', '8499', '10038', '14038' ', 3959',' 11482 ', ' 11483',
    "11484 ', '11485', '11486', '11487' ', 11488',' 11489 ', ' 11490',
    "11491 ', '11492', '11493', '11494' ', 11495',' 11496 ', ' 11510',
    "11560 ', '11561', '11562', '11563' ', 11564',' 11565 ', ' 11566',
    "7959 ', '15482', '15483', '15484' ', 15485',' 15486 ', ' 15487',
    "15488 ', '15489', '15490', '15491' ', 15492',' 15493 ', ' 15494',
    "15495 ', '15496', '15510', '15560' ', 15561',' 15562 ', ' 15563',
    "15564 ', '15565', '15566', '11588', '15588',' 12096 ', ' 16096')
    );



    PLAN_TABLE_OUTPUT
    Hash value of plan: 347973291

    ----------------------------------------------------------------------------------------------------------------------------


    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |    TQ | IN-OUT | PQ Distrib.
    ----------------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |                  |    86 M |  6992M |  2901K (1) | 09:40:22 |        |      |            |
    |   1.  COORDINATOR OF PX |                  |       |       |            |          |        |      |            |
    |   2.   PX SEND QC (RANDOM). : TQ10002 |    86 M |  6992M |  2901K (1) | 09:40:22 |  Q1, 02 | P > S | QC (RAND) |
    |*  3 |    HASH JOIN RIGHT SEMI |                  |    86 M |  6992M |  2901K (1) | 09:40:22 |  Q1, 02 | SVCP |            |
    |   4.     RECEIVE PX |                  |   263K |  4887K |  5456 (14) | 00:01:06 |  Q1, 02 | SVCP |            |
    |   5.      PX SEND HASH | : TQ10001 |   263K |  4887K |  5456 (14) | 00:01:06 |  Q1, 01 | P > P | HASH |
    |   6.       ITERATOR BLOCK PX |                  |   263K |  4887K |  5456 (14) | 00:01:06 |  Q1, 01 | ISSUE |            |
    |*  7 |        FULL RESTRICTED INDEX SCAN FAST | STI__IDX |   263K |  4887K |  5456 (14) | 00:01:06 |  Q1, 01 | SVCP |            |
    |   8.     KIND OF BUFFER.                  |       |       |            |          |  Q1, 02 | ISSUE |            |
    |   9.      RECEIVE PX |                  |  1087M |    66G |  2891K (1) | 09:38:14 |  Q1, 02 | SVCP |            |
    |  10.       PX SEND HASH | : TQ10000 |  1087M |    66G |  2891K (1) | 09:38:14 |        | S > P | HASH |
    |  11.        TABLE ACCESS FULL | STC              |  1087M |    66G |  2891K (1) | 09:38:14 |        |      |            |
    ----------------------------------------------------------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):
    ---------------------------------------------------

    3 - access("STC".") LOANNUMBER "=" STI ". ("' LOANNUMBER")
    7 - filter("STI".") ACTIVEIV «= 1 AND ("STI".» Codec "= ' 10038"OR "STI" "codec"="11482' OR
    "STI". "codec"= "11483" OR "STI". "codec"= "11484" OR "STI". "codec '=" 11485' OR
    "STI". "codec"= "11486" OR "STI". "codec"= "11487" OR "STI". "codec '=" 11488' OR
    "STI". "codec"= "11489" OR "STI". ' Codec '= ' 11490 "OR"STI". "codec '=" 11491' OR
    "STI". "codec"= "11492" OR "STI". "codec"= "11493" OR "STI". "codec '=" 11494' OR
    "STI". "codec"= "11495" OR "STI". "codec"= "11496" OR "STI". "codec" = '11510' OR "
    "STI". "codec"= "11560" OR "STI". "codec"= "11561" OR "STI". "codec '=" 11562' OR
    "STI". "codec"= "11563" OR "STI". "codec"= "11564" OR "STI". "codec '=" 11565' OR
    "STI". "codec"= "11566" OR "STI". "codec"= "11588" OR "STI". "codec '=" 12096' OR
    "STI". "codec"= "14038" OR "STI". "codec"= "15482" OR "STI". "codec '=" 15483' OR
    "STI". "codec"= "15484" OR "STI". "codec"= "15485" OR "STI". "codec '=" 15486' OR
    "STI". "codec"= "15487" OR "STI". "codec"= "15488" OR "STI". "codec '=" 15489' OR
    "STI". "codec"= "15490" OR "STI". "codec"= "15491" OR "STI". "codec '=" 15492' OR
    "STI". "codec"= "15493" OR "STI". "codec"= "15494" OR "STI". "codec '=" 15495' OR
    "STI". "codec"= "15496" OR "STI". "codec"= "15510" OR "STI". "codec '=" 15560' OR
    "STI". "codec"= "15561" OR "STI". "codec"= "15562" OR "STI". "codec '=" 15563' OR
    "STI". "codec"= "15564" OR "STI". "codec"= "15565" OR "STI". "codec '=" 15566' OR
    "STI". "codec"= "15588" OR "STI". "codec"= "16096" OR "STI". "codec"="2692" OR
    "STI". "codec"= "2697" OR "STI". "codec"= "2737" OR "STI". "codec '=" 3481' OR
    "STI". "codec"= "3482" OR "STI". "codec"= "3483" OR "STI". "codec" = '3886' OR "
    "STI". "codec"= "3887" OR "STI". "codec": "3888" OR "STI". "codec '=" 3944' OR
    "STI". "codec"= "3945" OR "STI". "codec"= "3946" OR "STI". "codec"="3953" OR "
    "STI". "codec"= "3954" OR "STI". "codec"= "3955" OR "STI". "codec '=" 3959' OR
    "STI". "codec"= "3960" OR "STI". «Codec ' = ' 4072 "OR"STI".» "codec '=" 4284' OR
    "STI". "codec": "4343" OR "STI". "codec"= "4499" OR "STI". "codec"="500" OR "
    "STI". "codec"= "501" OR "STI". "codec"= "6692" OR "STI". "codec '=" 6697' OR
    "STI". "codec": "6737" OR "STI". "codec"= "7481" OR "STI". "codec '=" 7482' OR
    "STI". "codec": "7483" OR "STI". "codec"= "7886" OR "STI". "codec '=" 7887' OR
    "STI". "codec": "7888" OR "STI". "codec"= "7944" OR "STI". "codec '=" 7945' OR
    "STI". "codec"= "7946" OR "STI". "codec"= "7953" OR "STI". "codec '=" 7954' OR
    "STI". "codec"=, "7955" OR "STI". "codec"= "7959" OR "STI". "codec '=" 7960' OR
    "STI". "codec"= "800" OR "STI". ' Codec '= ' 801 "OR"STI". "codec '=" 8072' OR
    (("STI"."codec"= "8284" OR "STI"."codec"= "8343" OR "STI"."codec"="8499'))

    What could be the possible reason?

    No matter what level setting of session as "ENABLE PARALLEL" or something.

    Please tell us in this regard.

    Thank you and best regards,

    -Nordine

    (on Oracle 11.2.0.3.0)

    nordine B wrote:

    Thanks Hoek. Learned something new.

    BTW, I checked the DOF in this table and there is no PARALLELism present.

    Any other pointer why this could happen?

    You have probably checked the parallelism of the * index * STI__IDX - that's probably the problem no. 1 with reconstructions of index in parallel to speed up the reconstruction process and oblivion reset the level again to 1. This change in 12 c, incidentally, where reconstructions of index and table move is no longer change / persist the degree of the operation in the dictionary of the object reconstruction / moved.

    Randolf

  • Statement tuning - parallel execution... but why?

    Hi all

    We have addressed a request last week and everything was fine. However yesterday, we noticed that the query took 5 minutes ends instead of 3 seconds. When we executed the plan of the explanation of the query, we noticed that he was using parallel features (PX SEND HASH, etc) and seems to take more time now. We do not have all the parallel features so far so I wonder if Oracle can use parallelism, although we don't him did not?

    and if not, why now Oracle uses parallelism?

    Thank you very much.

    Chiwatel wrote:
    We do not have all the parallel features so far so I wonder if Oracle can use parallelism, although we don't him did not?

    and if not, why now Oracle uses parallelism?

    You said that you use 11.2.x, in which case you get parallel treatment automatically if you have the instance PARALLEL_DEGREE_POLICY = AUTO setting even if you have not explicitly enabled parallelism with notes or decoration of tables and index.
    --
    John Watson
    Oracle Certified Master s/n
    http://skillbuilders.com

    Published by: JohnWatson on March 19, 2013 10:02
    fix

    Tags

  • How to avoid the parallel execution

    Hello!

    In my database is this undesirable parallelization of the query.
    All of the tables involved a degree = 1,
    If I just figured there is no method to avoid this problem except reduction of the degree of index?
    I'm usung 11.2.0.3

    Thank you and best regards,
    Pavel

    Well, you can use the NOPARALLEL hint if you do not want parallelism to be there.

    Aman...

  • Parallel execution of DBMS_SCHEDULER

    Hello
    I have a few procedures that I want to run in parallel for a batch, and I thought to create a job for each of them and a string of DBMS_SCHEDULER to run all together.
    My question is, is it possible to order the number of jobs that are running simmultaneoulys? If I have 4 work that isn't really a problem, but if I get to 400 job I wouldn't have them all try to run together.


    Thanks for your help

    Published by: Pedro_gloria on May 5, 2011 11:58 (typo)

    Hello

    One way is that to store your procedure names in a table and their loop and keep to submit jobs with the name "SOMENAME1", "SOMENAME2" etc.

    Inside the loop to keep control for the number of jobs in DBA_SCHEDULER_RUNNING_JOBS where job_name like 'UNNOM % '. IF the number is 4 then wait until she gets down like that.

    DECLARE
       l_cnt          NUMBER;
    BEGIN
       FOR i IN (SELECT * FROM table_procedure_names)
       LOOP
          l_sql       :=  --build your scheduler submit in dynamic sql with i.procedure_name use job names as say 'ORAJOB1','ORAJOB2'
    
          EXECUTE IMMEDIATE l_sql;
    
          LOOP
             SELECT COUNT (1)
               INTO l_cnt
               FROM DBA_SCHEDULER_RUNNING_JOBS
              WHERE job_name LIKE 'ORAJOB%';
    
             EXIT WHEN l_cnt < 4;
          END LOOP;
       END LOOP;
    END;
    

    Or you could also manage resources for a set of jobs by creating a job class and assigning a group of consumers of resources

    http://www.Stanford.edu/dept/ITSS/docs/Oracle/10gR2/AppDev.102/b14258/d_sched.htm#i1011092

    G.

Maybe you are looking for