我想自动化在Firebird数据库中设置索引统计信息的过程,这样就不需要数据库管理员运行命令,也不需要用户单击按钮。
由于只需要在大量插入或删除之后重新计算统计信息,因此我正在考虑使用after Insert和After Delete触发器来跟踪发生了多少次插入或删除操作,然后运行一个过程来根据该值设置索引统计信息。
我的问题是,在实时数据库上以这种方式设置索引统计信息时,是否有什么需要注意的地方。需要说明的是,我不是在重建索引,而是在重新计算索引统计信息。这很可能在批量导入或删除操作期间发生。在批量导入或删除期间计算索引统计信息是否有可能导致任何问题?
发布于 2012-12-05 05:07:51
在正在使用的实时数据库上重新计算索引统计信息是安全的。在PSQL中这样做也是安全的,例如在存储过程中。例如,我在夜间运行一个调度的批处理作业,该作业执行一个存储过程,重新计算所有索引的统计信息。
我不确定在触发器中这样做是否明智,因为Firebird中的触发器是按行而不是按语句触发的,因此您必须确保在PSQL主体的某种条件分支中运行它。
https://stackoverflow.com/questions/13692087
复制相似问题