Parallel execution of multiple test cases.

Does flex unit 4.x version supports for parallel execution of multiple test cases?
Any help will be greatly appreciated.

No.
Flash Player and AIR are single-threaded virtual machines. The only parallel execution one could do is during asynchronous tests, but we do not support that presently for a variety of reasons.
Mike

Similar Messages

  • Parallel execution of multiple scripts

    Hi All,
    I understand that by using parallel hint we can achieve parallel execution of the queries(insert/update/delete).
    For my today's question I would like know if Parallelism can be achieved for the following scenario.
    I have a script with an insert-select statement and multiple merge statements and few update 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 it, and then run for Feb, and so on.
    Can all the 12 month be run in parallel. One way I can think of is create 12 different scripts and kick them of by opening 12 different SQL Plus sessions (all on the same table).
    Is there a better way of doing this ?
    Note: each month data will not effect the other other month data.
    Regards,
    Aj

    Creating 12 different scripts would be a sub-optimal solution, and a maintenance nightmare. Creating 1 parametrized script and call that 12 times with different parameters would be slightly better.
    Creating 1 stored procedure with parameters, and run that procedure in the scheduler 12 times would still be better, as everything runs at the server side only.
    Your description is deliberately vague, so the possibility of deadlock can not be excluded.
    Sybrand Bakker
    Senior Oracle DBA

  • Want to run multiple Test Cases by ant ?

    Hi all,
    I have a class called Book.java and two test cases called BookTest1.java and BookTest2.java . I want to test both this test cases by ant. I have to set this ant task unix cron job so, that this test is done automatically each day.
    I have wrote the build file with batchtest option but it is building the application suucessfully without checking the Test Cases individually.
    I am successfully the same task with JUnit Test suite.
    Thanks and Regards
    Taton Banerjee
    Book.java
    package src;
    public class Book {
        private String title;
        private double price;
        public Book(String title,double price) {
            this.title = title;
            this.price = price;
    public static void main(String args[])
         System.out.println("Inside Book class");
        public boolean equals(Object object) {
            if (object instanceof Book) {
                Book book = (Book) object;
                return getTitle().equals(book.getTitle())
                        && getPrice() == book.getPrice();
            return false;
        public double getPrice() {
            return price;
        public void setPrice(double price) {
            this.price = price;
        public String getTitle() {
            return title;
        public void setTitle(String title) {
            this.title = title;
    BookTest1.java
    package src;
    import junit.framework.Test;
    import junit.framework.TestCase;
    import junit.framework.TestSuite;
    //import de.laliluna.tutorial.junitexample.Book;
    * @author http://www.laliluna.de
    public class BookTest1 extends TestCase {
        private Book book1;
        private Book book2;
        @SuppressWarnings("unused")
         private Book book3;
         * setUp() method that initializes common objects
        protected void setUp() throws Exception {
            super.setUp();
            book1 = new Book("ES", 12.99);
            book2 = new Book("The Gate", 11.99);
            book3 = new Book("ES", 12.99);
         * tearDown() method that cleanup the common objects
        protected void tearDown() throws Exception {
            super.tearDown();
            book1 = null;
            book2 = null;
            book3 = null;
         * Constructor for BookTest1.
         * @param name
        public BookTest1(String name) {
            super(name);
         * testEquals method to test the equals(..) method
         * of the class Book
        public void testEquals(){
            assertFalse(book2.equals(book1));
            assertTrue(book1.equals(book3));
        public static Test suite(){
            TestSuite suite = new TestSuite();
            suite.addTest(new BookTest1("testEquals"));
            return suite;
    BookTest2.java
    package src;
    import junit.framework.Test;
    import junit.framework.TestCase;
    import junit.framework.TestSuite;
    //import de.laliluna.tutorial.junitexample.Book;
    public class BookTest2 extends TestCase {
        private Book book3;
        private Book book4;
        private Book book5;
         * setUp() method that initializes common objects
        protected void setUp() throws Exception {
            super.setUp();
            book3 = new Book("ES", 12.99);
            book4 = new Book("The Gate", 11.99);
            book5 = new Book("ES", 12.99);
         * tearDown() method that cleanup the common objects
        protected void tearDown() throws Exception {
            super.tearDown();
            book3 = null;
            book4 = null;
            book5 = null;
         * Constructor for BookTest.
         * @param name
        public BookTest2(String name) {
            super(name);
         * testEquals method to test the equals(..) method
         * of the class Book
        public void testEquals(){
            assertFalse(book4.equals(book3));
            assertTrue(book3.equals(book5));
        public static Test suite(){
            TestSuite suite = new TestSuite();
            suite.addTest(new BookTest2("testEquals"));
            return suite;
    Test Suite(Not neccessary when running with ant)
    package src;
    import junit.framework.Test;
    import junit.framework.TestSuite;
    public class AllJUnitTests {
         /*public AllJUnitTests(String name)
         super(name);
         public static Test suite() {
              TestSuite suite = new TestSuite("Test for src");
              //$JUnit-BEGIN$
              suite.addTest(BookTest2.suite());
              suite.addTest(BookTest1.suite());
              //$JUnit-END$
              return suite;
         * Runs the test suite using the textual runner.
        public static void main(String[] args) {
            junit.textui.TestRunner.run(suite());
    build.xml
    <?xml version="1.0"?>
         <project default="deploy">
         <!-- set global properties for this build -->
              <property name="src" value="src" />
              <property name="build" value="build" />
              <property name="dist" value="dist" />
              <target name="JUNIT">
                   <!-- Create the time stamp -->
                   <tstamp/>
                   <!-- Create the build directory structure used by compile -->
                   <mkdir dir="${build}/src" />
              </target>
              <target name="compile" depends="JUNIT">
                   <mkdir dir="${dist}/lib" />
                   <!-- Compile the java code from ${src} into ${build} -->
                   <javac srcdir="${src}" destdir="${build}/src" >
                   <classpath>
                        <!--<pathelement location="dist/lib/HellowithAnt.jar" />-->
                        <pathelement path="E:/junit4.4/junit-4.4.jar" />
                        <!--<pathelement path="/lib/commons-net-1.4.1.jar" />
                        <pathelement path="/lib/jakarta-oro-2.0.8.jar" />-->
                   <!--<pathelement path="E:/apache-ant-1.7/lib" />-->
                   </classpath>
                   </javac>
                   <junit printsummary="yes" fork="yes"
                           errorProperty="batchtest.failed"
                           failureProperty="batchtest.failed"
                           haltonfailure="yes">
                           <formatter type="xml"/>
                           <classpath path=".">
                             <pathelement path="E:/junit4.4/junit-4.4.jar" />
                             <pathelement path="/build/src/BookTest1.class"/>
                             <pathelement path="/build/src/BookTest2.class"/>
                                <pathelement path="/build/src/AllJUnitTests.class"/>                                   
                             </classpath>     
                             <!--<test todir="${build}/src"/>-->
                             <batchtest todir="${build}/src">
                             <!--<fileset dir="${build}/src" includes="src.AllJUnitTests.class"/>-->
                             <fileset dir="${build}/src">     
                        <filename name ="src.BookTest1.class"/>
                             <filename name ="src.BookTest2.class"/>
                             <filename name ="src.AllJUnitTests.class"/>     
                             </fileset>     
                             </batchtest>
                        <!--<batchtest todir="build.src">
                             <fileset dir="build.src">
                             <filename name ="src.BookTest1.class"/>
                             <filename name ="src.BookTest2.class"/>
                             </fileset>     
                        </batchtest>-->
                             <!--<test todir="${build}/src" name="src.BookTest"/>-->
                        </junit>
                             <fail message="Tests failed!" if="batchtest.failed"/>                              
                            <junitreport todir="${build}/src">
                                <!--<batchtest todir="${build}/src">
                            <fileset dir="${build}/src">
                             <include name="*.xml"/>
                             </fileset>
                             </batchtest>-->
                        <report format="frames" todir="${build}/lib"/>
                             </junitreport>
                    </target>
                    <target name="dist" depends="compile">
                     <!-- Create the ${dist}/lib directory -->
                     <!-- Put everything in ${build} into the HelloTest.jar file -->
                     <jar jarfile="${dist}/lib/HellowithAnt.jar" basedir="${build}/src" >
                          <!--<fileset dir="${dist}/lib">
                                                   <filename name="BookTest1.class"/>
                                                   <filename name="BookTest2.class"/>
                                               <filename name="Book.class"/>
                                               <filename name="dist.lib.HelloTestwith.jar"/>
                          </fileset>-->
                          <manifest>
                           <attribute name="Main-Class" value="src.Book"/>
                           </manifest>
                          </jar>
                    </target>
                    <target name="runtests" depends="dist" >
                     <java jar="${dist}/lib/HellowithAnt.jar"
                          fork="yes" 
                          classpath=".;D:/Java/jdk1.5.0_01/bin;E:/apache-ant-1.7.0/lib/junit-4.4.jar;C:/Documents and Settings/kaushikb/workspace/HelloTestwithAnt/dist/lib/HellowithAnt.jar;C:/Documents and Settings/kaushikb/workspace/HelloTestwithAnt/src/AllJUnitTests;C:/Documents and Settings/kaushikb/workspace/HelloTestwithAnt/src/BookTest1;C:/Documents and Settings/kaushikb/workspace/HelloTestwithAnt/src/BookTest2">
                        <!--<fileset todir="${build}/src">
                             <filename name="src.BookTest1.class"/>
                             <filename name="src.BookTest2.class"/>
                             </fileset>-->
                        <arg value="src.AllJUnitTests"/>
                     </java>
                    </target>
                     <target name="deploy" depends="runtests">
                   </target>
               </project>/*---------------------------------------------------------------------------
    Command prompt output :
    c:/Documents and Settings/kaushikb/workspace/HelloTestwithAnt> ant
    Buildfile: build.xml
    JUNIT:
    compile:
    [javac] Compiling 4 source files to C:\Documents and Settings\kaushikb\wor
    pace\HelloTestwithAnt\build\src
    [junitreport] Processing C:\Documents and Settings\kaushikb\workspace\HelloTes
    ithAnt\build\src\TESTS-TestSuites.xml to C:\DOCUME~1\kaushikb\LOCALS~1\Temp\nu
    1759201173
    [junitreport] Loading stylesheet jar:file:/E:/apache-ant-1.7.0/lib/ant-junit.j
    !/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-frames.xsl
    [junitreport] Transform time: 1153ms
    [junitreport] Deleting: C:\DOCUME~1\kaushikb\LOCALS~1\Temp\null1759201173
    dist:
    [jar] Building jar: C:\Documents and Settings\kaushikb\workspace\HelloTe
    withAnt\dist\lib\HellowithAnt.jar
    runtests:
    [java] Inside Book class
    deploy:
    BUILD SUCCESSFUL
    Total time: 5 seconds
    ---------------------------------------------------------------------------

    Haven't looked too carefully because you weren't very specific, but here's how I would do it:
    public class Book { }
    public class TestBook1 extends TestCase {}
    public class TestBook2 extends TestCase {} //don't define any suite() method
    public class TestBookSuite extends TestCase {
       public static Test suite() {
          TestSuite suite = new TestSuite();
          suite.add(TestBook1.class);
          suite.add(TestBook2.class);
          return suite;
    //================ant:===========
    <target name="runtests" depends="dist" >
       <java classpath="." classname="junit.textui.TestRunner">
         <arg value="path.to.TestBookSuite"/>
       </java>
    </target>Of course filling in classpath information and the like where it's appropriate for your situation.

  • Sequences - Test Organzer:  How to move more than 1 test case at a time

    Hello,
    I would like to be able to move multiple test cases within a sequence but I do not know how.  If I highlight multiple rows and select Move Test Case only 1 of the rows will move.  This is fine if your test package only has a few transactions but if you have many it becomes very time consuming.
    Does anyone know how to move more than one test case at a time within a sequence?
    Regards,
    Corinne Taylor

    Hi Corinne,
    Actually I do not have any solution for that either. I am also only able to move the test cases one by one, which indeed can become very time consuming. There I have a small question to you: when I am in the web-based application to change the sequence of the test cases, everything goes really slow. Selecting the test package in the browser, going to change mode, selecting the test cases, creating a test sequence...it all takes time before I can continue. Is it the same with you? Else I will need to look at what is going wrong on our side.
    Thanks and best regards,
    Kristof

  • Visual Studio 2013, CodedUI, running 2 solutions inside a 'container' solution, same test-case, different URL's.

    Hello!
    I'm running a number of test-cases, captured using CodedUI, on a number of URL's.
    An example, maybe to populate a field within a web-based database.
    Now, in order to run multiple test-cases created with differing solutions, one per URL 'target', I need to 'add' these individual solutions into another solution, to act as a 'container'.
    Not really a problem, even though it does make playlist manipulation more difficult than it needs to be (is it really necessary to have to build the solution everytime a new solution is 'added', rather than one build at the end!?).
    However, when it comes to running the tests, it seems as they are identical barring the URL, even though they have different titles, and it runs both, it seems to put them both under a single banner of 'CodedUITestMethod1'. Why?
    So, if I add a run a suite of say 10 tests, 5 tests of each going to two URL targets, it runs the ten tests, reports as having done 10 tests, but only shows 5 x 'CodedUITestMethod1'. 

    Hi,
    According to your description, I don’t understand clearly about your issue.
    >> I'm running a number of test-cases, captured using CodedUI, on a number of URL's.
    Do you have multiple test methods for each URL or just a data-driven test?
    >> I need to 'add' these individual solutions into another solution, to act as a 'container'.
    How do you ‘add’ these individual solutions? Add existing project?
    >> So, if I add a run a suite of say 10 tests, 5 tests of each going to two URL targets, it runs the ten tests, reports as having done 10 tests, but only shows 5 x 'CodedUITestMethod1'.
    How do you associate test methods to test cases? Where do you check reports?
    Regards
    Starain
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to run multiple CodedUI Ordered Tests over multiple Test Agents for parallel execution using Test Controller

    we are using VS 2013, I need to run multiple Coded UI Ordered Tests in parallel on different agents.
    My requirement :
    Example:   I have 40 Coded UI Test scripts in single solution/project. i want to run in different OS environments(example 5 OS ).  I have created 5 Ordered tests with the same 40 test cases. 
    I have one Controller machine and 5 test agent machines. Now I want my tests to be distributed in a way that every agent gets 1 Ordered test to execute. 
    Machine_C = Controller (Controls Machine_1,2,3,4,5)
    Machine_1 = Test Agent 1 (Should execute Ordered Test 1 (ex: OS - WIN 7) )
    Machine_2 = Test Agent 2 (Should execute Ordered Test 2 (ex:
    OS - WIN 8) )
    Machine_3 = Test Agent 3 (Should execute Ordered Test 3
    (ex: OS - WIN 2008 server)  )
    Machine_4 = Test Agent 4 (Should execute Ordered Test 4 (ex:
    OS - WIN 2012 server) )
    Machine_5 = Test Agent 5 (Should execute Ordered Test 5 (ex:
    OS - WIN 2003 server) )
    I have changed the  “MinimumTestsPerAgent” app setting value
    as '1' in controller’s configuration file (QTController.exe.config).
    When I run the Ordered tests from the test explorer all Test agent running with each Ordered test and showing the status as running. but with in the 5 Test Agents only 2 Agents executing the test cases remaining all 3 agents not executing the test cases but
    status showing as 'running' still for long time (exp: More then 3 hr) after that all so  its not responding. 
    I need to know how I can configure my controller or how I can tell it to execute these tests in parallel on different test agents. This will help me reducing the script execution time. 
     I am not sure what steps I am missing. 
    It will be of great help if someone can guide me how this can be achieved.
    -- > One more thing Can I Run one Coded UI Ordered Test on One Specific Test Agent?
    ex: Need to run ordered Test 1 in Win 7 OS (Test Agent 1) only.
    Thanks in Advance.

    Hi Divakar,
    Thank you for posting in MSDN forum.
    As far as I know, we cannot specify coded UI ordered test run on specific test agent. And it is mainly that test controller determine which coded UI ordered test assign to which test agent.
    Generally, I know that if we want to run multiple CodedUI Ordered Tests over multiple Test Agents for parallel execution using Test Controller.
    We will need to change the MinimumTestsPerAgent property to 1 in the test controller configuration file (QTControllerConfig.exe.config) as you said.
    And then we will need to change the bucketSize number of tests/number of machines in the test settings.
    For more information about how to set this bucketSize value, please refer the following blog.
    http://blogs.msdn.com/b/aseemb/archive/2010/08/11/how-to-run-automated-tests-on-different-machines-in-parallel.aspx
    You can refer this Jack's suggestion to run your coded UI ordered test in lab Environment or load test.
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/661e73da-5a08-4c9b-8e5a-fc08c5962783/run-different-codedui-tests-simultaneously-on-different-test-agents-from-a-single-test-controller?forum=vstest
    Best Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How do you have a single test case run on multiple platforms in both a Deploy/Test build and via MTM?

    I am wanting to have a scheduled nightly build execute my testcases for multiple platforms/configurations.  I have multiple VMs running in these environments but the method Microsoft provided
    (without digging into customizing the build template) doesn't provide any functionality for this.  This is a basic use case for automation that I can't believe they would miss.  Has anyone run into this and found a solution.  Is it just that
    you have to completely customize the template?
    For a more complete use case...
    I have 4 customers that have different configurations and different OS platforms on top of a generic configuration.  I want the build/deploy/test build to automatically run my 152 test
    cases to at minimum those 5 environments.  I want this to run every morning at 1am and the tests should in the different environments in parallel (ie all of customer 1 tests run at the same time as customer 2 tests...). I also don't want to have to create
    152 * 5 test cases since that will bloat things and cause more management/maintenance headaches.

    I am wanting to have a scheduled nightly build execute my testcases for multiple platforms/configurations.  I have multiple VMs running in these environments but the method Microsoft provided
    (without digging into customizing the build template) doesn't provide any functionality for this.  This is a basic use case for automation that I can't believe they would miss.  Has anyone run into this and found a solution.  Is it just that
    you have to completely customize the template?
    For a more complete use case...
    I have 4 customers that have different configurations and different OS platforms on top of a generic configuration.  I want the build/deploy/test build to automatically run my 152 test
    cases to at minimum those 5 environments.  I want this to run every morning at 1am and the tests should in the different environments in parallel (ie all of customer 1 tests run at the same time as customer 2 tests...). I also don't want to have to create
    152 * 5 test cases since that will bloat things and cause more management/maintenance headaches.

  • [svn] 889: Add test case for BLZ-82 where HttpService should return multiple headers with the same name .

    Revision: 889
    Author: [email protected]
    Date: 2008-03-21 13:08:05 -0700 (Fri, 21 Mar 2008)
    Log Message:
    Add test case for BLZ-82 where HttpService should return multiple headers with the same name.
    Ticket Links:
    http://bugs.adobe.com/jira/browse/BLZ-82
    Added Paths:
    blazeds/trunk/qa/apps/qa-regress/remote/MultipleHeadersTest.jsp
    blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/proxyService/httpservice/MultiHe aderTest.mxml

    Hi again,
    this may be old news to some people, but I just realized we can have the desired benefits I originally listed (encapsulation, reuse, maintainability, security) TODAY by using pipelined functions and using the table() function in Apex report region queries.
    So the report query basically becomes, for example (if get_employees is a pipelined function)
    select * from table(my_package.get_employees(:p1_deptno))
    The only downside compared to a (weakly typed) sys_refcursor is that you have to define the type you are returning in your package spec (or as an SQL type). So it's a bit more coding, but it's still worth it for the other benefits it provides.
    I like Apex even better now! :-)
    - Morten

  • I am looking to use multithreading in order to run multiple tests in parallel on one UUT.

    I am looking to multithread multiple tests in paralllel on one UUT.  I looked in the main site and all examples are on zip files that I seem to not be able to successfully download from the site.  Does anyone have any file examples or white papers on this subject that I can view???
    Solved!
    Go to Solution.

    put one test in a sub sequence.  then call that subsequence using New Thread as the Execution Options:
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • How to store test cases in multiple languages?

    We need to provide test cases in German an English and I would like to avoid having two projects.
    My idea is to use a template project which allows the translation of the process tree, and then have both test cases in one document (maybe using a word makro to jump to the needed language if that works).
    Do you know a better way to manage test cases in different languages?

    We need to provide test cases in German an English and I would like to avoid having two projects.
    My idea is to use a template project which allows the translation of the process tree, and then have both test cases in one document (maybe using a word makro to jump to the needed language if that works).
    Do you know a better way to manage test cases in different languages?

  • CATT Test case for  ME41 tcode(Multiple items for inventory and service )

    Hello Gurus,
    Now we are having quotation legacy file for Tcode ME41 for inventory and service items. We are using tcode <b>SCAT</b>
    for CATT. Every thing going fine at recording in test case. i dont know where should i specify my legacy file path. I found there is one download option while before running test case. its not taking the file path.  is there any other file path for running test case?
    advice me.
    regards
    dinesh.a
    <b></b>

    Hi
    I think you should use an abap program and not LSMW, because the problem is you have to create a recording for trx ME41 in the LSMW and after you can't change the abap code created.
    In this way you could insert only a certain number of items by a project of LSMW, and it depends on your recording.
    So if you can't know how many item should be loaded, it's very hard to use LSMW.
    Max

  • Importing existing test cases with multiple test steps into e-Manager

    When I import my excel-based test cases into e-Manager Enterprise, each test step appears as a separate test case. How can I correct this problem?

    Please try attached XLS. You need to blank out every column except for the test steps column for rows which are your test steps.

  • Parallel Execution  against Normal Execution

    Hi,
    Can someone explain why in this case Serial Execution is faster although enabling parallel dml at session level , What are the possibilities to improve speed of executoin for parallel execution as i need to populate for 139 stores data having around half a million rows for each store , i will have to run a cursor on the distinct value of store to achieve this , just to test i got the following Results , can anyoe guide where i am going Wrong?
    This is the Script
    set timing on
    insert into r8_win_store
    select * from win_store@rms8 where store=99;
    commit;
    alter session enable parallel dml;
    insert /*+ Parallel(t,8) */ into r8_win_store t
    select /*+ parallel(e,8)*/ * from win_store@rms8 e where e.store=99;
    commit;
    alter session disable parallel dml;
    OUtput
    SQL> @test1.sql
    299666 rows created.
    Elapsed: 00:03:48.12
    Commit complete.
    Elapsed: 00:00:00.01
    Session altered.
    Elapsed: 00:00:00.00
    299666 rows created.
    Elapsed: 00:08:02.81
    Commit complete.
    Elapsed: 00:00:01.31
    Session altered.
    Elapsed: 00:00:00.00

    Parallel processing in Oracle is intended to reduce I/O latency. When you tell the kernel to do an I/O, you need to wait for that call to complete - disk platters to spin, disk controller heads to move, etc.
    If you need to make a bunch of I/O calls after one another, you will spend up to 90% of the elapsed time waiting for that I/O to actually put the data into your buffer to process.
    Now imagine doing a million I/Os.. and 90% of the time spend waiting for I/O to complete. A big performance knock and a frustrating one - as you cannot make that actual I/O any faster. It is simply slow. The slowest operation you can do on the computer and you're doing a million of them.
    Parallel processing in Oracle addresses this problem. There can be sufficient I/O bandwidth to make a 100 I/O calls per second. But your process that does an I/O call, wait, process, and does an I/O call, wait, process, can only reach a speed of 10 I/O calls per second.
    Which means 90% of the I/O pipe is free to do I/O in parallel. So instead of a single process doing that million I/Os (using 10% I/O bandwidth/thruput), Oracle spawns 10 process each doing a 100K I/Os each - thus making better use of the I/O thruput.
    So Oracle PQ is useless if you scan small volumes of data - it is intended for large volumes of data. There are overheads in PQ as the parallel processes have to be coordinated in order to work together. When each only needs to do 10 I/Os, the time spend on coordination alone can be more than what the time would have been to simply do a 100 I/Os using a single process.
    It is also a fallacy that number of CPUs determine the just how many parallel processes you can start. The real determining factor is the load you can put on your I/O subsystem.
    Bottom line is that PQ is nothing "special" or "magic". It is simply a method to reduce I/O latency by performing parallel I/O. And it is only sensible to use when the amount of I/O to be done warrants parallel processing.
    Oh yeah - and the CBO is very capable in deciding when to use PQ and not. So rather than force PQ down the CBO's throat using the PARALLEL clause and hardcoding the degrees and instances, it should rather make those decisions (as informed decisions) itself. Which means using the PARALLEL clause on tables and not as SQL hints. The DBA can easily tune that by altering the PARALLEL clause if a table.. The DBA cannot by any means do the same thing when dealing with SQLs that insists on a specific number of PQ processes on a specific number of instances.

  • 11gR2 query parallel execution

    I need to retrieve info from a very big table many times with different where conditions and compared execution plan for the queries using composite index on (group_id, start,end).
    SELECT /*+ index(a idx_loc) */ a.id , a.group_id
    from location a
    where a.group_id=10
    and a.start>=30000
    and a.end<=60000;
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
    | 0 | SELECT STATEMENT | | 578 | 25432 | 191K (1)| 00:38:14 | | |
    | 1 | PARTITION LIST SINGLE | | 578 | 25432 | 191K (1)| 00:38:14 | KEY | KEY |
    | 2 | PARTITION LIST SINGLE | | 578 | 25432 | 191K (1)| 00:38:14 | 6 | 6 |
    | 3 | TABLE ACCESS BY LOCAL INDEX ROWID| LOCATION | 578 | 25432 | 191K (1)| 00:38:14 | 6 | 6 |
    |* 4 | INDEX SKIP SCAN | IDX_LOC | 592 | | 190K (1)| 00:38:07 | 6 | 6 |
    SELECT /*+ parallel */ a.id , a.group_id
    from location a
    where a.group_id=10
    and a.start>=30000
    and a.end<=60000;
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
    | 0 | SELECT STATEMENT | | 578 | 25432 | 16333 (1)| 00:00:33 | | | | | |
    | 1 | PX COORDINATOR | | | | | | | | | | |
    | 2 | PX SEND QC (RANDOM)| :TQ10000 | 578 | 25432 | 16333 (1)| 00:00:33 | | | Q1,00 | P->S | QC (RAND) |
    | 3 | PX BLOCK ITERATOR | | 578 | 25432 | 16333 (1)| 00:00:33 | 6 | 6 | Q1,00 | PCWC | |
    |* 4 | TABLE ACCESS FULL| LOCATION | 578 | 25432 | 16333 (1)| 00:00:33 | 6 | 6 | Q1,00 | PCWP | |
    My questions are:
    1) The execution plan shows the query using parallel hint has much less cpu cost and time compared with the one with index hint. So it seems it is better to use the parallel execution. is there any downside to use parallel hint that I should consider?
    2) I can also modify the application to submit multiple queries (using index hint) in parallel (which opens multiple sessions). Is the parallel hint in the query superior to parallel queries in application?

    user7435395 wrote:
    I need to retrieve info from a very big table many times with different where conditions and compared execution plan for the queries using composite index on (group_id, start,end). BIG is a very qualitative term. So you need to be more specific. And when ever you ask for a SQL Tuning request please provide the following details mentioned in {thread:id=863295}
    SELECT /*+ index(a idx_loc) */ a.id , a.group_id
    from  location a
    where  a.group_id=10
    and a.start>;=30000
    and a.end;=60000;
    | Id  | Operation                           | Name                      | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
    |   0 | SELECT STATEMENT                    |                           |   578 | 25432 |   191K  (1)| 00:38:14 |       |       |
    |   1 |  PARTITION LIST SINGLE              |                           |   578 | 25432 |   191K  (1)| 00:38:14 |   KEY |   KEY |
    |   2 |   PARTITION LIST SINGLE             |                           |   578 | 25432 |   191K  (1)| 00:38:14 |     6 |     6 |
    |   3 |    TABLE ACCESS BY LOCAL INDEX ROWID| LOCATION |   578 | 25432 |   191K  (1)| 00:38:14 |     6 |     6 |
    |*  4 |     INDEX SKIP SCAN                 | IDX_LOC           |   592 |       |   190K  (1)| 00:38:07 |     6 |     6 |
    --------------------------------------------------------------------------------------------------------------------------------- As you have forced oracle to use IDX_LOC. it is going for a [url http://docs.oracle.com/cd/B19306_01/server.102/b14211/optimops.htm#PFGRF10105]INDEX SKIP SCAN. And if the cardinality of the subindex column is low then oracle may be doing more work here. I think that is what exactly happening in your case. A simple full table scan could be more efficient.
    SELECT /*+ parallel */ a.id , a.group_id
    from  location a
    where  a.group_id=10
    and a.start>;=30000
    and a.end;=60000;
    | Id  | Operation            | Name                      | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |    TQ  |IN-OUT| PQ Distrib |
    |   0 | SELECT STATEMENT     |                           |   578 | 25432 | 16333   (1)| 00:00:33 |       |       |        |      |            |
    |   1 |  PX COORDINATOR      |                           |       |       |            |          |       |       |        |      |            |
    |   2 |   PX SEND QC (RANDOM)| :TQ10000                  |   578 | 25432 | 16333   (1)| 00:00:33 |       |       |  Q1,00 | P->S | QC (RAND)  |
    |   3 |    PX BLOCK ITERATOR |                           |   578 | 25432 | 16333   (1)| 00:00:33 |     6 |     6 |  Q1,00 | PCWC |            |
    |*  4 |     TABLE ACCESS FULL| LOCATION |   578 | 25432 | 16333   (1)| 00:00:33 |     6 |     6 |  Q1,00 | PCWP |            |
    ----------------------------------------------------------------------------------------------------------------------------------------------- Again PARALLEL query has its own down side. There is no free lunch. You need to spend more resource. And most of the time in a OLTP system with multi user access its not worthwhile.
    So the first thing i would suggest you is to remove all your hint and get an execution plan and post it. And read the above link provided an post all the necessary details.
    You need to be first clear about your problem.

  • How to change the status of test cases in Test Plan from Design to Ready using Excel VBA

    HI,
    How to change the status of test cases in Test Plan from Design to Ready using Excel VBA

    Thanks Florin,
    Your piece of code has worked alot, and it was very helpful in changing the Status of the Workitem to "READY" for all the Users fo the workitem.
    Points have been rewarded for your help.
    Process: We have acheived this using the "Work Item Exits", Usng "AFTER_EXECUTION" Method.
    Note: The Exit will be executed if "exit_cancelled"  statement is present/used in the work item method. if not it is not taking to the exit code. I'm unable to find the reason for it. Florin can u please explain this point.
    Please check the link for adding the code in Work Item Exits.
    http://wiki.sdn.sap.com/wiki/display/ABAP/ProgramExitsIn+Workflow
    Please find the Code:
    method IF_SWF_IFS_WORKITEM_EXIT~EVENT_RAISED.
    Get the context of the workitem
      me->wi_context = im_workitem_context.
    After execution of the workitem call the method AFTER_EXECUTION
      if im_event_name eq swrco_event_after_execution.
        me->after_execution( ).
      endif.
    endmethod.
    METHOD AFTER_EXECUTION.
    This method acts as the Event Handler for SWRCO_EVENT_AFTER_EXECUTION
      DATA: LCL_L_WID TYPE SWW_WIID,
            L_STATUS TYPE SWR_WISTAT-STATUS,
            L_NEW_STATUS  TYPE SWR_WISTAT,
            L_SWR_MESSAG  TYPE STANDARD TABLE OF SWR_MESSAG,
            L_SWR_MSTRUC  TYPE STANDARD TABLE OF SWR_MSTRUC.
    Get work item
      CALL METHOD WI_CONTEXT->GET_WORKITEM_ID
        RECEIVING
          RE_WORKITEM = LCL_L_WID.
      L_STATUS = 'READY'.
      CALL FUNCTION 'SAP_WAPI_SET_WORKITEM_STATUS'
        EXPORTING
          WORKITEM_ID    = LCL_L_WID
          STATUS         = L_STATUS
          USER           = SY-UNAME
          LANGUAGE       = SY-LANGU
          DO_COMMIT      = 'X'
        IMPORTING
          NEW_STATUS     = L_NEW_STATUS
         RETURN_CODE    = SY-SUBRC
        TABLES
          MESSAGE_LINES  = L_SWR_MESSAG
          MESSAGE_STRUCT = L_SWR_MSTRUC.
      IF SY-SUBRC EQ 0.
      ENDIF.
    ENDMETHOD.
    Thank You Once Again,
    Ajay Kumar Chippa

Maybe you are looking for

  • Front End to Oracle Database - Advice Needed

    Hi My company has recently purchased an Oracle Database. Are there any advantages in creating the front end in Oracle as opposed to writing the front end in Java. I am interested to know if one method is preferred over the other. I was planning on wr

  • When I import photos from my digital camera in iPhoto 7.1.5 all i get is empty squares. Used to work great

    Just recently, I went to import some photos from my digital camera into my iPhoto 7.1.5 version on my Mac. All I am getsting is the amount of pictures on the camera in the shape of blank picture holders on the screen.  I hooked up the same camera to

  • Data Dictionary - Default Fields

    Hai Friends,                  This is Ramu. Can anyone help me How to make Fields of a Table in Disable Mode and How to Populate Values when it is New Entry or Update. Ex:  I have 5 fields in my table.              Date              Time             

  • Items above/below region content

    Hello ApEx development team, What happened with this enhancement: Items above/below region content I think, this limitation is annoying and needs to be removed. It takes to much unnecessary workaround to overcome such a trivial problem. Best regards,

  • Creating Customize Report

    Greetings all, I am fairly new to Apex and I have seen the reports and have been able to generate them. I am looking to make a customized report based on a query. I am trying to create a report that looks more like a web page than a row colum report,