跟踪针对 bts 索引的查询

可以通过启用跟踪,确定针对 bts 索引运行的查询的频率。

启用跟踪之后,对 bts 索引运行的每次查询都将在 $GBASEDBTDIR/tmp/bts_query.log 文件中生成一个日志记录。每个日志记录包含五个字段,以管道字符 (|) 分隔:

query time stamp|index name|partn|query|number of rows|

下表中描述了这些字段。

表 1. 查询跟踪字段
字段名 数据类型 描述
查询时间戳记 DATETIME YEAR TO FRACTION 查询的运行时间。
索引名 LVARCHAR 索引的名称。
Partn INTEGER 索引所在段的物理位置的识别码。
查询 LVARCHAR 查询的语法。
行数 INTEGER 查询返回的行数。

可以通过将日志记录装入表中并查询表来查看日志记录。

要跟踪查询:

  1. 创建 bts 索引时在 CREATE INDEX 语句中包含 query_log="yes" 参数。
  2. 创建用于存储日志记录的表。
  3. 将日志记录装入日志表。
  4. 查询日志表以查看记录。

以下示例显示如何执行上述每一步。

在已启用跟踪的情况下创建 bts 索引:
CREATE INDEX bts_idx ON products (brands  bts_char_ops)
  USING bts (query_log="yes") IN sbsp1;
创建用于存储日志记录的表:
CREATE TABLE bts_query_log_data(
    qwhen DATETIME YEAR TO FRACTION,
    idx_name LVARCHAR,
    partn INTEGER,
    query LVARCHAR,
    rows INTEGER);
将日志记录装入表:
LOAD FROM '$GBASEDBTDIR/tmp/bts_query.log' INSERT INTO bts_query_log_data;
查询表以查看日志记录:
SELECT ids_name,query,rows FROM bts_query_log_data;

idx_name bts_idx
query melville
rows 14

idx_name bts_idx
query dickens
rows 29

idx_name bts_idx
query austen
rows 3

3 row(s) retrieved.