4 Replies Latest reply: Sep 14, 2009 8:21 AM by 635471 RSS

    Parallel execution for Expression Filters

    635471
      I'm looking for any information on whether expression filters are amenable to parallel execution or not.

      I had a look through the documentation without success, and saw that in the type declarations for supporting objects there is no mention of DETERMINISTIC or PARALLEL_ENABLE. However, the static functions and procedures do not look like they have any constructs that the database would see as an impediment for parallel execution.

      Can anyone advise on this?
        • 1. Re: Parallel execution for Expression Filters
          442199
          David,

          Expression filter uses a domain index to identify the expressions that match a given event. The index scan itself cannot be parallelized. However, if you are using these indexes to join expressions table with other tables, the ability to scan the data tables in parallel will automatically parallelize the join query.

          Regards,
          -Aravind.
          • 2. Re: Parallel execution for Expression Filters
            635471
            Thanks for that.

            Maybe in a parallel query environment the index will not be used. But I was really wondering whether the execution of the Evaluate function itself would be parallelised, as it invokes functions that are not explicitly marked as deterministic or as safe for parallel execution.

            http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_packages.htm#BABIGDGE

            Well, I'll see if I can investigate (maybe I'll have to suspend those system triggers that prevent modification of the Type ... just for experimental reasons, you understand).
            • 3. Re: Parallel execution for Expression Filters
              442199
              David,

              Any reason you want to use the functional evaluation over the index-based evaluation ? As you may know, functional evaluation involves executing dynamic SQL statements for each expression in the table. Unless your expressions are not very selective and each of them have sparse predicates, index-based evaluation almost always wins.

              Regards,
              -Aravind.
              • 4. Re: Parallel execution for Expression Filters
                635471
                Aravind Yalamanchi wrote:
                David,

                Any reason you want to use the functional evaluation over the index-based evaluation ? As you may know, functional evaluation involves executing dynamic SQL statements for each expression in the table. Unless your expressions are not very selective and each of them have sparse predicates, index-based evaluation almost always wins.

                Regards,
                -Aravind.
                Ah hah, I did not know that. Back to the documentation ... thanks Aravind.