obevo
obevo copied to clipboard
Performance issues on reverse engineering for DBs with many files on NEWREVENG command
The NEWREVENG command had performance issues for schemas with large # of files (we had a SQL Server use case with ~23,000 objects).
Upon profiling, looks like the "replaceSnippet" call is very expensive [1]
Worth trying to get a performance test in on this first (we should generate the 23,000 files on the fly, not check them in), and then to analyze and debug the issue)
deploy.bat newreveng -dbType MSSQL -mode SCHEMA -outputPath C:\myinput -username *** -password *** -dbSchema *** -inputPath
[1] at org.eclipse.collections.impl.block.factory.Procedures2$AddToCollection.value(Procedures2.java:75) at org.eclipse.collections.impl.block.factory.Procedures2$AddToCollection.value(Procedures2.java:69) at org.eclipse.collections.impl.set.mutable.UnifiedSet.forEachWith(UnifiedSet.java:531) at org.eclipse.collections.impl.utility.Iterate.forEachWith(Iterate.java:178) at org.eclipse.collections.impl.lazy.FlatCollectIterable$3.value(FlatCollectIterable.java:72) at org.eclipse.collections.impl.utility.internal.IteratorIterate.forEach(IteratorIterate.java:648) at org.eclipse.collections.impl.utility.internal.IterableIterate.forEach(IterableIterate.java:483) at org.eclipse.collections.impl.utility.Iterate.forEach(Iterate.java:135) at org.eclipse.collections.impl.lazy.FlatCollectIterable.forEachWith(FlatCollectIterable.java:68) at org.eclipse.collections.impl.AbstractRichIterable.toSet(AbstractRichIterable.java:220) at com.gs.obevo.db.apps.reveng.AbstractDdlReveng$SchemaObjectReplacer.replaceSnippet(AbstractDdlReveng.java:401) at com.gs.obevo.db.apps.reveng.AbstractDdlReveng.revengFile(AbstractDdlReveng.java:329) at com.gs.obevo.db.apps.reveng.AbstractDdlReveng.access$400(AbstractDdlReveng.java:64) at com.gs.obevo.db.apps.reveng.AbstractDdlReveng$6.valueOf(AbstractDdlReveng.java:270) at com.gs.obevo.db.apps.reveng.AbstractDdlReveng$6.valueOf(AbstractDdlReveng.java:265) at org.eclipse.collections.impl.utility.internal.InternalArrayIterate.flatCollect(InternalArrayIterate.java:459) at org.eclipse.collections.impl.list.mutable.FastList.flatCollect(FastList.java:854) at org.eclipse.collections.impl.list.mutable.FastList.flatCollect(FastList.java:846) at org.eclipse.collections.impl.list.mutable.FastList.flatCollect(FastList.java:109) at com.gs.obevo.db.apps.reveng.AbstractDdlReveng.revengMain(AbstractDdlReveng.java:265) at com.gs.obevo.db.apps.reveng.AbstractDdlReveng.reveng(AbstractDdlReveng.java:183) at com.gs.obevo.dist.Main$5.value(Main.java:199) at com.gs.obevo.dist.Main$5.value(Main.java:194) at com.gs.obevo.dist.Main.execute(Main.java:115) at com.gs.obevo.dist.Main.execute(Main.java:83)