【发布时间】:2010-10-27 07:15:45
【问题描述】:
我同时使用 Firebird Embedded 和 Firebird Server,有时我需要使用如下过程重新索引表:
CREATE PROCEDURE MAINTENANCE_SELECTIVITY
ASDECLARE VARIABLE S VARCHAR(200);
BEGIN
FOR select RDB$INDEX_NAME FROM RDB$INDICES INTO :S DO
BEGIN
S = 'SET statistics INDEX ' || s || ';';
EXECUTE STATEMENT :s;
END
SUSPEND;
END
我想这在使用嵌入式时是正常的,但真的需要使用服务器吗?有没有办法将服务器配置为在需要时自动执行或定期执行?
【问题讨论】:
-
只是一个注释。在这个过程中,SUSPEND 是不必要的。
-
谢谢!我想我是从某个地方复制的。
-
实际上,您并没有重新索引,而只是重新计算索引统计信息。在大表上重新索引可能非常慢。计算统计数据总是很快的。
标签: firebird