Схема гусеничного медленного исполнения

Я использую обходчик схемы 8.17 для Oracle и MSSQL. Код реализован в Java. У меня есть следующие проблемы:

  1. Отнимает слишком много времени для базы данных Oracle.
  2. Невозможно найти схему для базы данных 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

Другие вопросы по тегам