Options

What dependencies?

GolezTrolGolezTrol Posts: 6
edited July 12, 2016 6:26AM in Schema Compare for Oracle
I'm trying out Schema Compare, but it is slow. I'm compare a database on Amazon AWS to a (local) scripts folder.

By far the most time is consumed by step 1: "Reading dependency information", "Populating dependency graph (iteration 1)".
I've made sure to set the options to ignore dependencies from other schemas and to exclude 'slow' dependencies. I've also tried the command line version with the /excludedependencies command line argument.

I set logging to verbose and found the biggest delay to be here. Reading the dependency-information took only a couple of seconds, but the DatabasePopulator took over 12 minutes to sort them out.
14:39:41.987|Debug  |VANDEV14            |17 |Total dependencies took 3966 ms
14:39:41.987|Info   |Executor Cache      |17 |Executor cache released to pool - 0
14:52:02.104|Debug  |Object Model        |7  |Iteration 0 DB1: 11252 DB2: 0
14:52:02.107|Debug  |Object Model        |7  |Iteration 1 DB1: 0 DB2: 0
14:52:02.107|Debug  |DatabasePopulator   |7  |Total time populating dependencies was 744044 ms
14:52:02.162|Info   |Executor Cache      |13 |Executor dependencies ready for 'for pool' took 744101ms  - 2
14:52:02.163|Info   |Executor Cache      |8  |Executor dependencies ready for 'for pool' took 744102ms  - 3
14:52:02.163|Info   |Executor Cache      |8  |Executor cache released to pool - 3
14:52:02.163|Info   |Executor Cache      |12 |Executor dependencies ready for 'for pool' took 744100ms  - 4
14:52:02.163|Info   |Executor Cache      |12 |Executor cache released to pool - 4
14:52:02.163|Info   |Executor Cache      |14 |Executor dependencies ready for 'for pool' took 744102ms  - 1
14:52:02.163|Info   |Executor Cache      |14 |Executor cache released to pool - 1
14:52:02.163|Info   |Executor Cache      |13 |Executor cache released to pool - 2

So, I wonder what is actually checked here. Since I want to write the differences to a scripts folder, I think there shouldn't be any dependency check needed. Just a 'dump' of what is in the data base should be enough. I thought the dependency checker is mainly there to put things in the right order and to make sure nothing breaks, both of which don't really matter to me in this stage. Is there any way to change this behaviour? The other steps run in seconds...

Comments

  • Options
    Eddie DEddie D Posts: 1,781 Rose Gold 5
    Hi

    Thank you for your forum post and sorry that you have encountered a problem.

    What version of Schema Compare for Oracle are you using?

    There are no options to turn this dependency check off. Prior to performing the actual comparison the dependency information is reviewed by the comparison engine. Enabling the options to Ignore slow dependencies and dependent objects in other schemas is a correct course of action, as the dependency check performed by the comparison engine would take if longer.

    When using the command line, the /excludedependencies has no effect on the comparison. This command line switch only excludes dependent objects from the deployment.

    Many Thanks
    Eddie
    Eddie Davis
    Senior Product Support Engineer
    Redgate Software Ltd
    Email: support@red-gate.com
  • Options
    GolezTrolGolezTrol Posts: 6
    edited February 22, 2016 6:43AM
    Thanks for your reply.

    I'm using 3.1.5.1321, trial version.
  • Options
    Eddie DEddie D Posts: 1,781 Rose Gold 5
    Hi,
    Thank you for your reply.

    This looks like a bug to me, therefore I have added the details of this forum post to an existing Bug Report whose reference OC-827.

    Sadly I do not have information as to when a bug fix will become available. I will be maintaining what our Bug Tracking system calls a 'Watch' on Bug Report OC-827. This means I will be notified on any changes that occur to the Bug Report and inform you when a bug fix version becomes available.

    Many Thanks
    Eddie
    Eddie Davis
    Senior Product Support Engineer
    Redgate Software Ltd
    Email: support@red-gate.com
  • Options
    Hi Eddie,

    We am also having the same issue. What's the ETA for this one?

    Thanks,
    Rahim
  • Options
    We have 'solved' this by overriding two views in our development databases before we run schema compare. We add these views to the schema.
    The first view is basically to tell Schema Compare to never mind the dependencies, and the second view is to prevent our overrides from showing up in the comparison.
    create or replace view DBA_DEPENDENCIES as
    select  *
    from    ALL_DEPENDENCIES 
    where   1=0;
    
    create or replace view DBA_VIEWS as
    select  *
    from    ALL_VIEWS 
    where   VIEW_NAME not in ('DBA_VIEWS', 'DBA_DEPENDENCIES');
    

    This makes the process of comparing a LOT faster, and it's good enough for storing changes in a Git working folder. It may however affect the order of changes in generated release scripts, so we must take care in reviewing this ourselves or at least recompiling invalid objects after a release. Getting everthing is Git was the top priority for us anyway, and this change makes the tool at least usable to us, although we'd like to see an actual feature so we can eliminate the hack.
Sign In or Register to comment.