控制 command_history 表的大小

可以缩短 command_history 表的保留期或从该表中除去行,从而防止该表变得过大。

必须以用户 gbasedbt 或其他授权用户身份连接 sysadmin 数据库。

缺省情况下,command_history 表中的行在 30 天之后会自动除去。保留期由 ph_threshold 表中的 COMMAND HISTORY RETENTION 行进行控制。

要缩短保留期,请执行以下操作:
使用 UPDATE 语句修改 ph_threshold 表中 COMMAND HISTORY RETENTION 行的值。
以下示例将保留期设置为 25 天:
UPDATE ph_threshold
SET value = "25"
WHERE name = "COMMAND HISTORY RETENTION";

可以使用 DELETE 或 TRUNCATE TABLE 之类的 SQL 命令手动从此表中除去数据。也可在 ph_task 表中创建任务以从 command_history 表清除数据。

以下示例显示了监视 command_history 表中的数据量并当表太旧时清除数据的任务。
INSERT INTO ph_task
( tk_name, tk_type, tk_group, tk_description, tk_execute,
tk_start_time, tk_stop_time, tk_frequency )
VALUES
("mon_command_history",
"TASK",
"TABLES",
"Monitor how much data is kept in the command history table",
"delete from command_history where cmd_exec_time < (
        select current - value::INTERVAL DAY to SECOND
        from ph_threshold
        where name = 'COMMAND HISTORY RETENTION' ) ",
DATETIME(02:00:00) HOUR TO SECOND,
NULL,
INTERVAL ( 1 ) DAY TO DAY);