run in parallel sql statement block

Hello
I'm looking for a way to run 2 blocks from the sql statement at the same time in sqlplus

Block1
drop table CTSGLOB_TABLE;
create the table CTSGLOB_TABLE select * from CTSGLOB_VIEW;
create index TEMPS_CTSGLOB_IDX ON CTSGLOB_TABLE("TEMPS");
create index ORGA_CTSGLOB_IDX ON CTSGLOB_TABLE("ORGA");
create index RUBSRH_CTSGLOB_IDX ON CTSGLOB_TABLE("RUBSRH");

Block2
drop table CTSGLOB_TABLE_2;
create the table CTSGLOB_TABLE_2 select * from CTSGLOB_VIEW_2;
create index TEMPS_CTSGLOB_IDX_2 ON CTSGLOB_TABLE_2("TEMPS");
create index ORGA_CTSGLOB_IDX_2 ON CTSGLOB_TABLE_2("ORGA");
create index RUBSRH_CTSGLOB_IDX_2 ON CTSGLOB_TABLE_2("RUBSRH");

I know that I can open 2 client session to run, but I would like to know another way.

Best regards
Jean-Marc

Well, that depends on what you mean exactly when you say "run 2 blocks from the sql statement at the same time in sqlplus '...
You can also copy all statements in a sql script and run that, just.
If this isn't what you want, then please explain why.

Tags: Database

Similar Questions

  • Run the second sql statement only if the first sql statement is set to zero.

    Hey guys I seem to have a mental block here. I have two sql statements. I would like to than the second to run only if the first sql statement is set to zero. I know that I can use PLsql but I would really like to see if I can do this with sql upward. Your answers are very much appreciated.
    This is the first sql
      Select     ft.fund_code, 
                 ft.orgn_code, 
                 ft.acct_code, 
                 ft.amount, 
                 fb.owner_pidm, 
                 ft.prog_code      
          from ftrbremb fb , ftcractg ft
          where fb.doc_code = 'TR000038'
          and fb.ftpbport_id = ft.ftpbport_id
    second sql statement
         Select ft.fund_code, 
                 ft.orgn_code, 
                 ft.acct_code, 
                 ft.amount, 
                 fb.owner_pidm, 
                 ft.prog_code      
          from ftrbremb fb , ftcractg ft, ftprexps fx
          where fb.doc_code = 'TR000038'
          --and fb.ftpbport_id = ft.ftpbport_id
          and fx.ftrbremb_id = fb.id
          and ft.ftprexps_id = fx.id;
    How can I combine these two statements together so that when the first is null the second run. As a bonus, I want to get just the first line as well.
    Any help would be greatly appreciated. I tried to accomplish with the case statement but it dosent everything seems to work for me.
    Thank you

    Miguel,

    the idea is simple: join the two queries (via the union of all) and to change the second part as to return only the rows if the first query returns no rows by changing the NOT EXISTS (first request). Hope I made it clear... ;)

  • How to run multiple parallel sql scripts?

    I try to execute multiple sql scripts parallel to the short run of the process via sqlplus. Are there opportunities to do? LINUX ORACLE 5. XX

    I do it too via Scheduler, but now I need to do this via sqlplus or shell + sqlplus?

    How do I start using shell script several xterminals and ech session begins all the sql scripts?

    nohup./SQL1.sh &

    nohup./sql2.sh &

    nohup./SQL3.sh &

    The '&' causes the script1.sh to run in the background so that the command prompt is returned immediately.  This means that sql2.sh can start immediately and at the same time as sql1.sh.  It doesn't have to wait for sql1.sh.   This assumes that there are no dependencies between scripts!  This meets your need to run scripts in parallel.

    The nohup untie your shell script.  So, even if you disconnect, the script continues to run.  Without the nohup, if you were to close your session before the end of the scripts running, they would get fired.

    Hemant K Collette

  • Re-run a single SQL statement on several report page

    Hello

    I have a Page containing reports 3 and I was wondering if it is possible to re - run only one of these reports using a button or preferably a Select list that allows me to choose which 3 reports I want to ' Refresh/re-run '. I'm wrong completely here but I assumed that you choose the option to send a Page causes all regions to refresh that is re - run SQL queries, they are "based on". Any suggestion or correction to my hypothesis would be welcome.

    Kind regards

    Kevin.

    KevinFitz wrote:

    Each query region will in the sense of 'SELECT MAX' (customer_nr) + 1 as a customernrcnt customer and I expected that the value of the counter is displayed in an area increment as a result of change/selecting a value in the list.

    Is it realistic for me to see the results, I think using this method?

    Is - it there any activity in the other database sessions that will result in CUSTOMER_NR is incremented? If this isn't the case, then no, it not there no possibility to see any increase in the numbers. If you have a defined sequence and report on it, then refresh the reports will show a difference:

    select customer_seq.nextval seq from dual
    
  • Order of execution of SQL statements

    Hello

    I have two SQL statements where the first statement executes on a table with more than 40 million lines, the second statement is running on a table more 6 million lines.  When they are running their own each take about 0.15 seconds to run, but when combined they take 20 minutes to run, (the second SQL statement is inserted in the WHERE clause of the statement of first).  It would seem that after combining these statements, the first statement goes through all 40 million lines before it performs the SELECT in the WHERE clause.  I think that what is necessary is to ensure the SELECT in the WHERE clause is executed first... or something like that!  Anyone has any ideas on how to combine these statements but not suffer from the performance impact?

    The first statement is:

    Select csi.instance_id,

    OEL.ordered_item

    of apps.csi_item_instances csi,.

    Apps.oe_order_lines_all oel

    where csi.instance_id in

    (1718000,3698000,48740202)

    and csi.last_oe_order_line_id = oel.line_id;

    The second statement is:

    Select / * + INDEX (IEA (attribute_id)) * /.

    IEA.instance_id

    apps.csi_iea_values do

    where iea.attribute_id = 10004

    and iea.attribute_value is not null;

    The joint return is:

    Select csi.instance_id,

    OEL.ordered_item

    of apps.csi_item_instances csi,.

    Apps.oe_order_lines_all oel

    where csi.instance_id in

    (select / * + INDEX (IEA (attribute_id)) * /)

    IEA.instance_id

    apps.csi_iea_values do

    where iea.attribute_id = 10004

    and iea.attribute_value is not null)

    and csi.last_oe_order_line_id = oel.line_id;

    Thanks for any help,

    Mike

    Your subquery returns probably just two values that you did originally as constants - but the optimizer thinks that you're going to get 564 K lines.  This is why the indicator for the simple query has a beneficial effect, it forces the Oracle to use an index when it would otherwise make a search.

    When the subquery is incorporated, however, the optimizer uses its cardinality expected to decide whether to use a nested loop join or the hash join to CSI_ITEM_INSTANCES, since the large enough estimate, he uses the hash with a join analysis complete.  That's why I pointed out that the fact to tell the optimizer to how many lines outside the subquery should make a difference.

    Have you tried the "common table expression" approach, rather than approach no_merge, but it would not help because it does not change the optimizer for cardinality estimate.  If you want to repeat the method CTE adding boards / * + materialize cardinality (2) * / to the query in the WITH clause, you should get the desired result.

    Concerning

    Jonathan Lewis

  • Why this parallel DML statement is not run as fast as DBMS_PARALLEL_EXECUTE?

    Hello

    I'm on the database Oracle Enterprise Edition, Linux RH 11.2.0.3. I have a pl/sql function that accepts a sdo_geometry (essentially an object with a few varrays), round each number in one of the varrays and retransmits the object.  Here is a version of the function, simplified slightly for brevity:

    create or replace round_coordinates (p_geometry in sdo_geometry, p_round_factor in numbers)

    return sdo_geometry parallel_enable

    is

    sdo_geometry v_geometry: = p_geometry;

    v_ordinates sdo_ordinate_array;

    Start

    v_ordinates: = p_geometry.sdo_ordinates;

    for me in v_ordinates.first... loop of v_ordinates. Last

    v_ordinates (i): = round (v_ordinates (i), p_round_factor);

    end loop;

    Return sdo_geometry (v_geometry.sdo_gtype, v_geometry.sdo_srid, v_geometry.sdo_point, v_geometry.sdo_elem_info, v_ordinates);

    end round_coordinates;

    /

    I need to perform this function as an update DML on hundreds of millions of sdo_geometry objects and according to my estimates it will take weeks.  So, I want to run in parallel.

    The data is in a bunch of tables, some with lines of k ~ 100 more with millions of people.  My preference is to browse the tables and run an update such as:

    Update < table > set geometry = round_coordinates (geometry);

    But I would like to operate in parallel, so I thought that I would allow the DML parallel to the session with

    ALTER session enable parallel dml.

    ALTER table < table > parallel;

    , and then run the update by: Update / * + parallel * / < table > set geometry = round_coordinates (geometry);

    When I do that, I can see a v$ px_session 16 parallel slaves are bent and the plan of the explanation is the following:

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

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

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

    |   0 | UPDATE STATEMENT.             | 10000 |   468K |    43 (0) | 00:00:01 |        |      |            |

    |   1.  UPDATE | SMALL_10000 |       |       |            |          |        |      |            |

    |   2.   COORDINATOR OF PX |             |       |       |            |          |        |      |            |

    |   3.    PX SEND QC (RANDOM). : TQ10000 | 10000 |   468K |    43 (0) | 00:00:01 |  Q1 00 | P > S | QC (RAND) |

    |   4.     ITERATOR BLOCK PX |             | 10000 |   468K |    43 (0) | 00:00:01 |  Q1 00 | ISSUE |            |

    |   5.      TABLE ACCESS FULL | SMALL_10000 | 10000 |   468K |    43 (0) | 00:00:01 |  Q1 00 | SVCP |            |

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

    But the update statement on my test data set does not any more quickly - it takes a few seconds more series that suggests General fresh extra expectations for the management of parallel slaves that's happened, but they did not have the query run faster.


    I tried to use the dbms_parallel_execute with the create_chunks_by_rowid option package and parallel_level = 16 With that I get at the end just over 1/16th of the time that it takes to run in series!

    That's fine, so I have the option dbms_parallel_execute, but I would like to understand why the query with the parallel flag does not expedite things.

    Any ideas?

    Thank you

    John

    It may be that the call to the PL/SQL function slows down things. Did you think to do in pure SQL?

    Here is an example:

    update test_sdo tsd
       set tsd.geometry.sdo_ordinates =
           (select cast(collect(round(t2.column_value)) as sdo_ordinate_array)
              from test_sdo t1
                  ,table(t1.geometry.sdo_ordinates) t2
             where t1.id = tsd.id)
    

    Post edited by: PaulHorth

    BTW: You can parallelize the query part of the SQL but not updating, it's documentation:

    "Parallel DML can be done on tables with columns object provided that the columns of the object are not accessible."

  • Capture the SQL statement before it runs

    Hello world

    I have a question about the capture of query sql statement in Oracle before he run? Is it possible to do and can give you the answer to this problem? Enter here means I can catch the declaration of all applications (like SQL, I * sqlplus or another application making the request to the database). I want to do this because my teacher asks me to analyze the request and if it violates any policy = > stop before Oracle run it.

    I tried this solution
    [Select trigger for Oracle | http://technology.amis.nl/2005/09/26/select-trigger-in-oracle-database-introducing-fine-grained-auditing/].
    but I think he looks not the answer. Because for the audit of the refined, the event handler is called when the first row is obtained. This is the average Oracle a analyze this quere and run to get the first row.

    Please help me with this problem

    Edited by: pirent420 at 04:05 06/05/2012

    Hello
    That's what you ask...

    www.Oracle.com/technetwork/Products/Database-Firewall/index.html

    Some other related things are:

    the database Vault control many things related to this in terms of what time of the day and access where data etc.

    Resource Manager can block statements if they want to use too many resources.

    The standard model of privilege/role/grant prevents access you something, that you are not allowed to see.

    Views can hide columns if necessary.

    DTV and RLS can hide lines

    It depends exactly on the requirement.

    See you soon,.
    Harry

  • Try to run a SQL statement through the window of OEM 12 c run SQL.  Statement fails

    All,

    I have a 11g database.  When it is initially installed, I installed it in $ORACLE_BASE = / orabin/app/oracle/product and $ORACLE_HOME = $ORACLE_BASE/11gDB_R2.  This is the version 11.2.0.1 to give birth to 11.2.0.3.

    Recently, I installed 11.2.0.4 in $ORACLE_BASE/11.2.0.4.  Then, I upgraded my database at 11.2.0.4.  Everything works fine.

    All my scripts on the linux host logon changed to point my environment at $ORACLE_BASE/11.2.0.4 House and my $PATH when I connect to the linux host is: /orabin/app/oracle/product/11.2.0.4/bin:/orabin/app/oracle/product/11.2.0.4/OPatch:/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin

    On my OEM Console, the database appears as 11.2.0.4 and me can manage very well.

    However, when I try to use the window of the OEM Console to execute SQL to execute any type of SQL statement, it fails.

    The failure error is:

    Could not launch/orabin/app/oracle/product/11gDB_R2/bin/sqlplus-s/nolog: no such file or directory

    It would be a mistake since the 11gDB_R2 directory tree (the 11.2.0.3 software) has been removed from the host, now that the database is set to level and working as 11.2.0.4.

    I wonder if somewhere in the OEM software, there is always a pointer to the old ORACLE_HOME?  I can't find anything in the .bashrc or other shell scripts that are executed when a Shell session on the host computer which were still the reference to the old directory of 11gDB_R2 so I'm a bit puzzled.

    I have 8 guests, and all have been improved in the same way at 11.2.0.4.  For some databases, the OEM window run SQL is executing the SQL code.

    Someone has some ideas on this?

    Go to the Configuration of the analysis of the database (when you set the password) and update of the Oracle home.   Also do this for all targets listener on this host as well.

  • How to run a SQL statement to use a specific implementation plan

    Hi all

    I have a SQL that has recently been run badly. I tried the Advisor tuning SQL for the given SQL query and it gives the following information:

    GENERAL INFORMATION SECTION

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

    Name of the task of tuning: 2q94zb7djr2xn

    The owner task of tuning: LMDBPROD

    Type of work: single SQL statement

    County of execution: 2

    The current run: EXEC_8869

    Type of execution: TUNE SQL

    Scope: COMPLETE

    Time Limit (seconds): 60

    Status: COMPLETED

    Started on the: 03/02/2014-20:43:39

    To the: 03/02/2014 20:44:25

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

    Name of the schema: LMDBPROD

    SQL ID: 2q94zb7djr2xn

    SQL text: SELECT NPCOMMON. FGET_ACTION_CODE (ORDNUM) ACTIONCODE, STATUS,

    SUMA COUNT (*) FROM SORDER, WHERE HEADORDNUM IS NOT NULL AND

    NPCOMMON. FGET_PRODUCTOFFER4ORDER (ORDNUM) IN (SELECT ID FROM)

    PRODUCTOFFER WHERE PPSPECIFICATION_ID IN (SELECT ID FROM)

    PPSPECIFICATION WHERE PCLASS_CODE IN (SELECT PCLASS_CODE FROM)

    ARUSERGROUP WHERE CODE IN (SELECT ARUSERGROUP_CODE FROM)

    ARUSER_ARUSERGROUP WHERE ARUSER_USERNAME =: B1 AND STATUS = '1')

    AND STATUS = '1'))) GROUP BY NPCOMMON. FGET_ACTION_CODE (ORDNUM),

    STATUS

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

    RESULTS SECTION (1 result)

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

    1-alternative Plan conclusion

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

    Some implementation plans alternative for this statement was found by searching

    performance data in real-time and historical of the system.

    The following table lists these plans sorted by their average time.

    See "SECTION of ALTERNATIVE PLANS" section for detailed information on each

    plan.

    plan ID hash last visit elapsed note of origin (s)

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

    1 617797893 2013-07-11/07: 45:20 9.555 no reproducible STS

    2 1311086720 2014-01-31/04: 00:44 19.569 AWR

    3 1226863820 2014-01-31/18: 00:24 AWR 21.158

    4 1359606848 2014-02-03/16: 00:34 21.492 AWR original plan

    The plan with hash 617797893 seems the most efficient one and is based on some specific SQL Tuning Set I ran on this time. But the note says that the plan is not reproducible. Is there anyway how can I force the SQL statement to execute the plan? The database version is Standard Edition 11.2.0.1.0

    Best regards

    Rodriguez

    Hello

    I think you can use this

    http://rnm1978.WordPress.com/2011/06/28/Oracle-11g-how-to-force-a-sql_id-to-use-a-plan_hash_value-using-SQL-baselines/

    before 11 g, we used to create an outline stored for this.

    concerning

  • sql statements run correctly

    Hello

    It is a question of certification.

    Question: 3
    Examine the structure of the table of PROGRAMS:
    Name Null? Type
    ---------- ------------- ---------------
    PROG_ID NOT NULL NUMBER (3)
    PROG_COST NUMBER (8.2)
    START_DATE DATE NULL NOT
    END_DATE DATE
    The two SQL statements would be run successfully? (Choose two.)
    A. SELECT NVL (ADD_MONTHS(END_DATE,1), SYSDATE) OF programs;
    B. SELECT TO_DATE (NVL (SYSDATE-END_DATE, SYSDATE)) OF programs;
    C. SELECT NVL (MONTHS_BETWEEN (start_date, end_date), 'Ongoing') OF programs;
    D. SELECT NVL (TO_CHAR (MONTHS_BETWEEN (start_date, end_date)), 'Ongoing') OF
    programs;

    Answers: A, D

    My question is:
    If A and D are correct woud B and C run successfully also right?

    Please specify.

    What? You are able to do this in your test db?
    You get an error for B and C for this reason - the expressions in the two queries will assess a number. B trying to do a TO_DATE on a NUMBER, and C tries to substitute a VARCHAR2 string where a NUMBER is expected.

  • How to run multiple sql statements

    Hi all

    I wonder if I can run multiple sql statements in one shot with > >, immediate run

    for example:

    I set the variable as X: = sql statement
    Y: = sql statement
    z: = sql statement

    can I execute immediate (X, Y, Z);

    If yes how? and if not what other possible

    Thank you

    Beginning with the codes of Ganesh

    DECLARE
       l_statement                 VARCHAR2 (2000);
       v_passwd                    VARCHAR2 (200);
       v_username                  VARCHAR2 (200) := 'test';
       v_pwd_key                   VARCHAR2 (200) := 'lwty23';
       v_dblink_name               VARCHAR2 (2000);
       v_dblink_drop               VARCHAR2 (2000);
       v_dblink_create             VARCHAR2 (2000);
       v_dblink_check_connection   VARCHAR2 (2000);
       l_number                    NUMBER;
    BEGIN
       --<>
       FOR c_instance IN (SELECT *
                            FROM v_oracle_instances
                           WHERE environment = 'Developement')
       LOOP
          SELECT encpwd_owner.display_db_encpwd (v_username,
                                                 c_instance.host_name,
                                                 c_instance.instance_name,
                                                 v_pwd_key)
            INTO v_passwd
            FROM DUAL;
    
          v_dblink_name := c_instance.host_name || '_' || c_instance.instance_name;
          v_dblink_create :=
                ' CREATE DATABASE LINK '
             || v_dblink_name
             || ' CONNECT TO '
             || v_username
             || ' '
             || 'IDENTIFIED BY '
             || v_passwd
             || ' USING'
             || ' ''(DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCP)(HOST= '
             || c_instance.host_name
             || ')(PORT='
             || c_instance.LISTENER_PORT
             || '))(CONNECT_DATA=(SID='
             || c_instance.instance_name
             || ')))''';
          v_dblink_check_connection := 'select 1 from global_name@' || v_dblink_name || '.QCM';    --- Notice this change. I am simply selecting 1. That should be enough to test the database link.
          v_dblink_drop := 'drop database link ' || v_dblink_name || '.QCMTLAF';
    
          -- l_statement := 'BEGIN ' || v_dblink_create ';' || v_dblink_check_connection ';' || v_dblink_drop '; END ;'
    
          BEGIN
              EXECUTE IMMEDIATE (v_dblink_create);
              DBMS_OUTPUT.PUT_LINE ('DB Link ' || v_dblink_name || ' Created');
         EXCEPTION
            WHEN others THEN
               dbms_output.put_line( 'Failed to create the database link ' || v_dblink_name  );
               dbms_output.put_line( dbms_utility.format_error_backtrace() );
               INSERT INTO error_table( column_list )
                 VALUES( <> );
         END;
    
          EXECUTE IMMEDIATE (v_dblink_check_connection) INTO l_number;    --- Notice this.
    
          DBMS_OUTPUT.PUT_LINE ('DB Link ' || v_dblink_name || ' Tested');
    
          BEGIN
             EXECUTE IMMEDIATE (v_dblink_drop);
             DBMS_OUTPUT.PUT_LINE ('DB Link ' || v_dblink_name || ' Dropped');
          EXCEPTION
             WHEN others THEN
               dbms_output.put_line( 'Failed to drop the database link ' || v_dblink_name  );
               dbms_output.put_line( dbms_utility.format_error_backtrace() );
               INSERT INTO error_table( column_list )
                 VALUES( <> );
         END;
       END LOOP;
    END;
    

    But I agree with the comment that others have grown up is not really wise to create and drop a database like that link.

    Justin

  • How to run grid sql statements

    Hello

    I would like to run some of the grid control sql statements as tablespace freespace check.

    Grid options could there be to execute the sql statement?

    If so, how to set up the output of the sql for E-mail

    Please I need your suggestion to proceed.

    Version of the grid: 10.2.0.5.0
    Platform: Sun

    Thank you.

    Hello

    no need to run the sql statement of the grid, instead of that you can configure the threshold values.

    for example, if your tablespace capacity 85% complete and then he will send you the email alert that you configured in notifications.

    you will find on the home page - bottom of the page - > manage settings...

    check http://download.oracle.com/docs/cd/B19306_01/server.102/b14196/montune001.htm#CACCIHAB

    http://download.Oracle.com/docs/CD/B19306_01/EM.102/b40002/notification.htm#sthref995

    Thank you

  • ORA-00900: the SQL statement invalid when you run for immediate assistance.

    Hello
    I write code simple db is 9.2.0.8
    create or replace procedure gather_part_stats(p_schema in varchar2, p_table in varchar2)
    as
    l_quarter varchar2(8) := to_char(sysdate, '"Y"YYYY"_Q"q') ;
    l_sql varchar2(2000) := 'exec dbms_stats.gather_table_stats(:schema, :table, method_opt => ''for all columns size 1'' , cascade => true , estimate_percent => 1 , granularity => ''PARTITION'', partname=>:part);';
    begin
    dbms_output.put_line('l_quarter: ' || l_quarter);
    dbms_output.put_line(l_sql);
    execute immediate l_sql using in p_schema, in p_table, in l_quarter ;
    end;
    /
    Trying to collect statistics of the table with the selected partition but mess up something with... something :)
    I use use to avoid sql injection, please advice.

    Error is:
    SQL > gather_part_stats exec ('TEST', 'TEST');
    l_quarter: Y2012_Q2
    exec dbms_stats.gather_table_stats (: schema,: table, method_opt = > ' for all columns size 1', cascade = > true, estimate_percent = > 1, granularity = > 'PARTITION', partname = >: part);
    BEGIN gather_part_stats ('TEST', 'TEST'); END;

    *
    ERROR on line 1:
    ORA-00900: invalid SQL statement
    ORA-06512: at the 'INSTALL '. GATHER_PART_STATS', line 8
    ORA-06512: at line 1

    Concerning
    GregG

    You must use the dynamic PL/SQL

    create or replace procedure gather_part_stats(p_schema in varchar2, p_table in varchar2)
    as
    l_quarter varchar2(8) := to_char(sysdate, '"Y"YYYY"_Q"q') ;
    l_sql varchar2(2000) := 'begin dbms_stats.gather_table_stats(ownname=>:schema, tabname=>:table, method_opt => ''for all columns size 1'' , cascade => true , estimate_percent => 1 , granularity => ''PARTITION'', partname=>:part); end;';
    begin
    dbms_output.put_line('l_quarter: ' || l_quarter);
    dbms_output.put_line(l_sql);
    execute immediate l_sql using in p_schema, in p_table, in l_quarter ;
    end;
    / 
    
  • Running in parallel in a CCR environment

    Hello

    I receive the advice of the parameter parallel_force_local to true to allow freqency queries that are run on a specific node in a CCR environment.

    Parallel_force_local (= false) default behavior is to allow the execution of a SQL statement on any or all the Oracle RAC nodes.

    I think that this defect can spread to the top of the 'load' on all nodes.

    What can be the advantage of set to true?

    Thanks and greetings

    (When setting this parameter), the question is whether or not you want parallel processing for crossing borders (node RAC) h/w?

    There is a fee for the h/w border crossing (paid via interconnection).

    There is a fee for not crossed limits h/w (paid by using more memory from the local server, e/s of bandwidth and CPU resources).

    Extreme example: If you have a 12 server with 96 cores, 512 GB of RAM and more than 8GB fiber channel pipes to the SAN - it makes sense to keep a large load of parallel and local processing on the server. If you have a server 2 socket (without seeds), 16 GB of RAM and a 4GB fiber channel pipe at the SAN - it makes sense to allocate a large load of parallel processing, in several of these servers.

  • SQL history Blocker

    Hello

    Oracle 10g.
    Lets say that I have lived a lock of database 2 hours ago and I want to find what sql statement was blocking others.

    I know that the sid of the blocker but I am unable to find the SQL of the inhibitor.
    Also, when I check higher activity of enterprise manager shows only the boy.

    I tried to run the queries at the bottom of the link, but it only shows information about the pending session.

    http://oraclue.com/2009/10/15/blocking-locks-history/


    How can I find the sql statement in the particular sid history?

    Hello

    If you can access the ASHES,
    SID-> ASH-> SQL_ID-> V$ SQL...

    Kind regards

Maybe you are looking for