2

我想自动化在 Firebird 数据库中设置索引统计信息的过程,这样就不需要数据库管理员运行命令,也不需要用户单击按钮。

由于统计只需要在大量插入或删除后重新计算,我正在考虑使用 After Insert 和 After Delete 触发器来跟踪发生了多少插入或删除,然后运行一个程序来设置索引统计基于该值。

我的问题是在实时数据库上以这种方式设置索引统计信息时是否需要注意什么。需要明确的是,我不是在重建索引,而只是重新计算索引统计信息。在批量导入或删除操作期间很可能会发生这种情况。在批量导入或删除期间计算索引统计信息是否有可能导致任何问题?

4

1 回答 1

2

在使用实时数据库时重新计算索引统计信息是安全的。在 PSQL 中这样做也是安全的,例如在存储过程中。例如,我在夜间运行一个预定的批处理作业,它执行一个存储过程,重新计算所有索引的统计信息。

我不确定在触发器中这样做是否明智,因为 Firebird 中的触发器是每行而不是每条语句触发的,因此您必须确保在 PSQL 主体的某种条件分支中运行它。

于 2012-12-04T21:07:50.850 回答