Схема гусеничного медленного исполнения
Я использую обходчик схемы 8.17 для Oracle и MSSQL. Код реализован в Java. У меня есть следующие проблемы:
- Отнимает слишком много времени для базы данных Oracle.
- Невозможно найти схему для базы данных MSSQL.
Я пытался использовать INFORMATION SCHEMA VIEWS для повышения производительности, но сомневаюсь, что сканер схем не может использовать INFORMATION SCHEMA VIEWS для 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);
Как я могу проверить, использует ли сканер схемы INFORMATION SCHEMA VIEWS??
1 ответ
Нео,
Oracle не поддерживает представления информационной схемы. При этом SchemaCrawler действительно использует системные таблицы Oracle. Вам необходимо скачать и использовать дистрибутив SchemaCrawler для Oracle. Вы можете сэкономить значительное время, затрачиваемое на обход базы данных, если вы ограничите сканируемые схемы, используя правильный набор SchemaCrawlerOptions. Это относится и к Microsoft SQL Server - используйте дистрибутив SchemaCrawler для Microsoft SQL Server. Если у вас есть более конкретные вопросы, пожалуйста, свяжитесь со мной напрямую. Вам лучше использовать последнюю версию SchemaCrawler, 10.08.04.
Суале Фатехи, SchemaCrawler