查询日志设置文件语法

要为 Essbase 多维数据集配置查询日志记录设置文件,请使用 QUERYLOG 参数配置查询日志记录设置文件,以指定要跟踪的维和成员以及要记录的信息的方式。

查询日志设置文件名必须采用 dbname.cfg 格式,其中 dbname 表示数据库(多维数据集)的名称。dbname.cfg 文件必须位于多维数据集目录中。使用以下语法配置 dbname.cfg 文件:

QUERYLOG [dimension_name]
QUERYLOG NONE GENERATION generation-range
QUERYLOG NONE LEVEL level-range
QUERYLOG GENERATION generation-range
QUERYLOG LEVEL level-range
QUERYLOG LOGPATH path-expression
QUERYLOG LOGFORMAT CLUSTER | TUPLE
QUERYLOG LOGFILESIZE n
QUERYLOG TOTALLOGFILESIZE n
QUERYLOG ON | OFF

注意:

多维数据集目录是指 <Application Directory>/app/appname/dbname。如果您不知道 <Application Directory> 在环境中的位置,

  • 如果使用独立的 Essbase 部署,请参阅 Essbase 平台中的环境位置

  • 如果在 Oracle Cloud Infrastructure 市场上使用 Essbase 部署,则 <Application Directory> 为 /u01/data/essbase/app

表 4-1 QUERYLOG 参数

QUERYLOG 参数 说明
[dimension_name] 标识要跟踪的维名称。维名称的方括号是必需的。QUERYLOG [dimension_name] 记录维的所有成员。例如,QUERYLOG [Product] 将跟踪 Product 维的所有成员。必须在单独的 QUERYLOG [dimension_name] 设置中指定每个维。
NONE GENERATION < genlevel_range_val >(请参见表 4-2 阻止跟踪指定生成范围内的成员。例如,QUERYLOG NONE GENERATION 2 不包括对指定维的第 2 代中所有成员的跟踪。
无级别 < genlevel_range_val >(请参见表 4-2 阻止跟踪指定级别范围内的成员。例如,QUERYLOG NONE LEVEL 0-2 排除对指定维的级别 0、1 和 2 的所有成员的跟踪。
GENERATION < genlevel_range_val >(请参见表 4-2 按层代编号而不是按成员名称跟踪指定层代范围的成员。例如,QUERYLOG GENERATION 5-7 将按命名维的第 5、6 和 7 代的成员的生成编号记录在日志文件中。
LEVEL < genlevel_range_val >(请参见表 4-2 按级别编号而不是按成员名称跟踪指定级别范围的成员。例如,QUERYLOG LEVEL -3 按命名维的级别编号在日志文件中记录级别 0、1、2 和 3 的成员。
日志路径 path-expression 指定输出日志文件的位置。日志文件名为 dbname00001.qlg;例如 basic00001.qlg。日志路径的示例包括 QUERYLOG LOGPATH /usr/local/Essbaselogs/ 和 QUERYLOG LOGPATH d:\Essbaselogs\querylogs\。必须在路径表达式的末尾包含反斜杠 \(对于 Windows 目录)或正斜杠 /(对于 UNIX 目录);否则,不会创建查询日志文件。

缺省情况下,日志输出文件的位置是多维数据集目录。如果缺少 LOGPATH path-expression 设置,则使用默认值。Essbase 在应用程序停止运行后将日志信息写入查询日志文件。

日志格式集群 | 元组 指定日志输出的格式。CLUSTER 和 TUPLE 提供相同的日志信息,但以不同的方式显示信息。CLUSTER 提供了有关查询维成员数的信息,并列出了各自维中的查询成员。TUPLE 列出每个查询的成员组合。默认情况下,CLUSTER 是日志格式。由于 TUPLE 格式列出了所查询的每个成员组合,因此 TUPLE 对查询性能的影响可能大于 CLUSTER。有关集群格式的查询日志的示例,请参见 Sample Cluster Output 。有关以元组格式显示的查询日志的示例,请参见 Sample Tuple Output
LOGFILESIZE n 指定单个查询日志文件的最大大小(以 MB 为单位)。最小值为 1 MB。最大值为 2048 MB (2 GB)。如果缺少 LOGFILESIZE 设置,则默认情况下,查询日志文件大小为 1 MB。如果初始查询日志文件大小超出指定范围,则日志信息将添加到新的查询日志文件。每次创建新文件时,文件名都会递增 1。
TOTALLOGFILEIZE n 指定所有查询日志文件的最大大小(以 MB 为单位)。最小值为 512 MB (1/2 GB)。最大值为 4095 MB。如果缺少 TOTALLOGFILESIZE 设置,则默认情况下,查询日志文件总大小为 1024 MB (1 GB)。在文件总大小超过指定的最大值之前,将创建查询日志文件。超过最大值时,将显示一条消息并自动关闭查询日志记录。
ON | OFF 指定是启用还是禁用查询日志记录功能。如果此设置为 OFF 或缺失,则会忽略所有查询日志设置。默认情况下,该设置处于 OFF 状态。

Generation-rangelevel-range 值 (<genlevel_range_val>) 通过以下方式之一表示:

表 4-2 生成和级别范围规范

生成范围或级别范围值 说明
x 特定层代编号或层级编号。例如,QUERYLOG NONE GENERATION 2 将从查询日志记录中排除第 2 代。
x-y 所有层代或层级(包括数字 x 到数字 y)例如,QUERYLOG GENERATION 1-3 或 QUERYLOG LEVEL 1-3 包括层代或级别编号 1、2 和 3。
-x 对于 generation-range,范围为 1 到 x 的所有层代。对于 level-range,范围为 0 到 x 的所有级别。例如,QUERYLOG GENERATION -2 包含第 1 代和第 2 代。QUERYLOG LEVEL -3 包括级别 0、1、2 和 3。
x- 对于 generation-range,从编号 x 到最高层的所有层代。对于 level-range,范围从编号 x 到最高级别的所有级别。例如,QUERYLOG 级别 1- 包括级别 1、2、3 等,直至最高级别。

说明

  • 启用查询日志记录时,对多维数据集的查询可能会更慢。性能取决于要跟踪的成员数和查询的大小。

  • 如果设置文件名与多维数据集的名称不匹配,或者位于多维数据集目录以外的位置,则 Essbase 会忽略查询日志记录。

  • 如果在设置中缺少 QUERYLOG ON,或者设置了 QUERYLOG OFF,则查询日志记录处于关闭状态。

  • 如果生成和级别设置导致设置文件中的矛盾,则应用以下优先规则:

    • 生成编号(最高优先级)

    • 级别号码

    • 成员名称(最低优先级)

    例如,如果成员同时属于级别 1 和层代 2,并且设置 QUERYLOG GENERATION 2 和 QUERYLOG NONE LEVEL 1 在设置文件中,则生成设置优先,并且按层代编号记录层代 2 的成员。

提示

  • 要轻松查看查询日志输出,请将文件扩展名 .qlg 更改为 .xml,然后使用浏览器查看 XML。

  • 如果 Essbase 未按预期生成查询日志 .qlg 文件,请查看多维数据集目录中的 dbname.log 文件以搜索查询日志消息。