在Firebird数据库中插入后设置索引统计信息

时间:2012-12-03 21:32:51

标签: firebird

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

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

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

1 个答案:

答案 0 :(得分:2)

在正在使用的数据库中重新计算实时数据库的索引统计信息是安全的。在PSQL中执行此操作也是安全的,例如在存储过程中。例如,我在夜间运行计划的批处理作业,执行存储过程重新计算所有索引的统计信息。

我不确定在触发器中执行此操作是否明智,因为Firebird中的触发器每行而不是每个语句触发,因此您必须确保在PSQL正文中的某种条件分支中运行该触发器