已保存的搜索加速工具

可以使用 SchemaGenerator 和 DataLoad 工具来优化流程搜索。

优化 Process Portal 已保存的搜索涉及到创建两个新表:LSW_BPD_INSTANCE_VAR_NAMES(变量表)和 LSW_BPD_INSTANCE_VARS_PIVOT(数据透视表)。这些工具将创建在优化 Process Portal 性能时所需的模式。

注意: 您需要先停止服务器,然后再执行此过程。

1. 生成模式

要优化已保存的搜索,首先需要为新表生成模式。 将目录更改为 install_root/BPM/Lombardi/tools/search-optimizer,然后输入以下命令:

./SchemaGenerator.{sh|bat} -profileName PROFILE_NAME -OPTION

可在 SchemaGenerator 工具中使用以下参数:

参数 描述
-profileName 此参数是可选参数;如果您想要对不同于环境缺省概要文件的另一个概要文件运行此工具,那么应使用此参数。请指定要使用的概要文件的名称。
OPTION 自变量定义以下某一项:
  • execute - 此工具立即创建整个模式。
  • output FILE_NAME - 此工具将所有 SQL 语句都写入到 FILE_NAME 定义的数据库文件中,而不是立即创建模式。
  • screen - 此工具将所有 SQL 语句都写入到命令窗口中,而不是立即创建模式。
选择 output 或 screen 选项后,可以查看此工具将进行的更改,然后手动进行这些更改。如果您选择除 -execute 选项外的任何其他选项,那么必须先手动运行 SQL 语句,然后再继续。这允许您查看此工具要执行的更改,并且允许您先进行环境所需的任何更改,然后再执行这些更改(例如,提供 SQL 提示或添加索引)。
注: 如果您手动运行 SQL 语句,请先咨询 IBM 支持人员,然后再更改任何列名或数据类型。

下面显示了一个使用 execute 选项的示例:

>./SchemaGenerator.sh oracle -execute
INFO  SchemaGenerator - SchemaGenerator starting
INFO  SchemaGenerator - dbdriver   : oracle.jdbc.driver.OracleDriver
INFO  SchemaGenerator - dburl      : jdbc:oracle:thin:@utica.lombardiqa.com:1521:uticasid
INFO  SchemaGenerator - dbuser     : adminusr
INFO  SchemaGenerator - Processing BPD ID 784afc31-e47b-4e83-b596-20b3cee2b422
INFO  SchemaGenerator - Processing BPD ID c904b3b1-afc1-4698-bf5a-a20892c20275
INFO  SchemaGenerator - Processing BPD ID e39cc53a-b75c-498c-8c28-43761fb73f2d
INFO  SchemaGenerator - Finished processing BPDs
INFO  SchemaGenerator - Executing Pivot Table DDL
INFO  SchemaGenerator - Executing Variable Names Table DDL
INFO  SchemaGenerator - Executing insert statements for Variable Names Table
INFO  SchemaGenerator - SchemaGenerator completed successfully.

下面显示了一个使用 output 选项的示例:

>./SchemaGenerator.sh oracle -output pivot.sql
INFO  SchemaGenerator - SchemaGenerator starting
INFO  SchemaGenerator - dbdriver   : oracle.jdbc.driver.OracleDriver
INFO  SchemaGenerator - dburl      : jdbc:oracle:thin:@utica.lombardiqa.com:1521:uticasid
INFO  SchemaGenerator - dbuser     : adminusr
INFO  SchemaGenerator - Processing BPD ID 784afc31-e47b-4e83-b596-20b3cee2b422
INFO  SchemaGenerator - Processing BPD ID c904b3b1-afc1-4698-bf5a-a20892c20275
INFO  SchemaGenerator - Processing BPD ID e39cc53a-b75c-498c-8c28-43761fb73f2d
INFO  SchemaGenerator - Finished processing BPDs
INFO  SchemaGenerator - Writing DDL to pivot.sql
INFO  SchemaGenerator - Finished writing DDL to pivot.sql
INFO  SchemaGenerator - SchemaGenerator completed successfully.

2. 装入数据

在创建表并将所有变量都装入到变量表之后,必须在 LSW_BPD_INSTANCE_VARS_PIVOT 表中装入来自已在运行的所有 BPD 实例的数据。这可确保搜索查询将看到现有实例以及可能已创建的任何新实例。

将目录更改为 install_root/BPM/Lombardi/tools/search-optimizer,然后输入以下命令:

./DataLoad.{sh|bat} -profileName PROFILE_NAME

DataLoad 工具将使用来自数据库中当前部署的每个 BPD 实例的数据填充数据透视表。此工具将提供状态消息以使您了解其进度。

下面显示了 DataLoad 输出的示例:

INFO  DataLoad - DataLoad starting
INFO  DataLoad - dbdriver   : oracle.jdbc.driver.OracleDriver
INFO  DataLoad - dburl      : jdbc:oracle:thin:@utica.lombardiqa.com:1521:uticasid
INFO  DataLoad - dbuser     : adminusr
INFO  DataLoad - Started at: 2011-09-06 16:26:11.26
INFO  DataLoad - Count obtained
INFO  DataLoad - Creating values
Processed 1000 records so far plus 1 instances with no variables, current block took 16.97 seconds, 0.95% complete, 0.28 minutes elapsed, 29.55 minutes remaining
Processed 2000 records so far plus 1 instances with no variables, current block took 16.42 seconds, 1.90% complete, 0.56 minutes elapsed, 28.80 minutes remaining
...
Processed 104000 records so far plus 4 instances with no variables, current block took 16.67 seconds, 98.58% complete, 29.11 minutes elapsed, 0.42 minutes remaining
Processed 105000 records so far plus 4 instances with no variables, current block took 16.19 seconds, 99.53% complete, 29.38 minutes elapsed, 0.14 minutes remaining
INFO  DataLoad - Total instances copied into pivot table: 105500
INFO  DataLoad - Total instances with no variable data copied into pivot table: 5
INFO  DataLoad - Finished at: 2011-09-06 16:58:00.891
INFO  DataLoad - DataLoad completed successfully.