| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
|  |  | |||
Home -> Community -> Mailing Lists -> Oracle-L -> Re: materialized view via link slow after upgrade from 8i to 9i
Barbara,
I can't tell you the specific action to take to fix the process, but it's root cause is probably because of the different default values in 9i vs. 8i for many underscore parameters related to the optimizer. These particularly affect subqueries. Take a look in Metalink for terms like "unnest".
--Terry
  I'm testing an upgrade of a database from version 8.1.7.4 to version 9.2.0.4
    Test db  LEGS        Oracle version 9.2.0.4  just created 
    Prod db  ARMS       Oracle version 8.1.7.4
    Prod db  AMPROD  Oracle version 9.2.0.4
Test (LEGS) is creating a materialized view via a link from the AMPROD database. This mview is created in less than 2 minutes when run from the prod ARMS 8i database. The same mview takes 40 minutes in the newly-upgraded test LEGS 9i database. IDENTICAL MVIEW; only difference is running out of 8i database versus 9i database.
All 3 databases are on the same VMS node. (OpenVMS 7.3-1)
Google/Metalink searches like "materialized view slow upgrade" yielded no useful info.
The mview from the 8i database is gathering the data in a different manner. For example, v8i:
  SELECT "ACCT_NBR", . . . more stuff
  FROM "ADMARC"."NAD" "NAD" WHERE "ACCT_NBR"=:1
  call     count       cpu    elapsed       disk      query       rows
v9i: (I don't know what that sys_alias_1 thing is)
  SELECT "ACCT_NBR, . . .  more stuff
  FROM "ADMARC"."NAD" "SYS_ALIAS_1"
  call     count       cpu    elapsed       disk      query    rows
version 8i is doing this:
SELECT "ACCT_KEY","END_ISS","ACT_DATE" FROM "ADMARC"."CNR" "CNR" WHERE "ACT_DATE">=TRUNC(:1-1) AND "END_ISS">=TRUNC(:2-1) call count cpu elapsed disk query rows
version 9i is doing this:
  SELECT "ACCT_NBR","ACT_DATE" FROM
  "ADMARC"."NAD" "NAD" WHERE "ACCT_NBR"=:1 AND "ACT_DATE">=TRUNC(:2-1) 
  call     count       cpu    elapsed       disk      query       rows
9i is clearly choosing a different method, but I don't know why.
Here's the mview creation:
  CREATE MATERIALIZED VIEW barb.MV_barb_CDT
  TABLESPACE ARMS_DATA LOGGING BUILD IMMEDIATE 
  REFRESH FORCE ON DEMAND
  AS
  select * FROM admarc.nad_at_amp2
  where acct_nbr in
          ( select acct_nbr
            from admarc.nad_at_amp2
            where  act_date  >= trunc(sysdate-1)
      union select acct_key 
            from admarc.cnr_at_amp2
            where   act_date >= trunc(sysdate-1)
            and     end_iss  >= trunc(sysdate-1) )
  I will be grateful for any ideas.
  Thanks so much!
  Barb
-- http://www.freelists.org/webpage/oracle-lReceived on Fri Nov 04 2005 - 13:01:49 CST
|  |  |