我正在使用SchemaCrawler 8.17 for Oracle和MSSQL。代码用Java实现。 我有以下问题:
我尝试使用INFORMATION SCHEMA VIEWS来提高性能,但我怀疑SchemaCrawler无法使用INFORMATION SCHEMA VIEWS for Oracle。以下是代码段:
DataSource dataSource = new DatabaseConnectionOptions("oracle.jdbc.driver.OracleDriver",
"jdbc:oracle:thin:@xx.xx.xx.xx:orcl");
Connection connection = dataSource.getConnection("xxx", "xxx");
Config config = getSchemaCrawlerConfig(RDBMSType.ORACLE);
SchemaCrawlerOptions options = new SchemaCrawlerOptions(config);
// SchemaCrawlerOptions options = new SchemaCrawlerOptions(config);
SchemaInfoLevel schemaInfoLevel = new SchemaInfoLevel();
schemaInfoLevel.setTag("Custom Info Level");
schemaInfoLevel.setRetrieveTables(true);
schemaInfoLevel.setRetrieveTableColumns(true);
schemaInfoLevel.setRetrieveForeignKeys(true);
schemaInfoLevel.setRetrieveColumnDataTypes(true);
options.setSchemaInfoLevel(schemaInfoLevel);
options.setProcedureInclusionRule(new InclusionRule(InclusionRule.NONE,
InclusionRule.ALL));
options.setSchemaInclusionRule(new InclusionRule("XXX",InclusionRule.NONE));
为了创建配置,我使用下面的代码片段:
Properties prop = new Properties();
FileInputStream fs = new FileInputStream(new File("D:\\schemacrawler-oracle.config.properties"));
//InputStream in = ApiExample.class.getResourceAsStream("D:\\schemacrawler-oracle.config.properties");
try {
prop.load(fs);
fs.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Config config = new Config(prop);
如何验证SchemaCrawler是否正在使用INFORMATION SCHEMA VIEWS?
答案 0 :(得分:0)
Neo,
Oracle不支持信息架构视图。话虽这么说,SchemaCrawler确实使用了Oracle系统表。您需要下载并使用Oracle的SchemaCrawler发行版。如果使用正确的SchemaCrawlerOptions集限制扫描的模式,则可以节省大量时间来爬网数据库。这也适用于Microsoft SQL Server - 请使用Microsoft SQL Server的SchemaCrawler分发。如果您有任何具体问题,请直接与我联系。最好使用最新的SchemaCrawler版本10.08.04。
Sualeh Fatehi,SchemaCrawler