Dmitriy A. Beloshistov wrote:
Кто меньше?-) Для FB 1.5.x работает такое:
create procedure SYS$SET_INDEXSTAT
returns (ACOUNT INTEGER)
as
declare variable AINDEXNAME varchar(100);
begin
ACOUNT=0;
FOR SELECT RDB$INDEX_NAME FROM RDB$INDICES
WHERE (RDB$SYSTEM_FLAG IS NULL) or (RDB$SYSTEM_FLAG<>1)
INTO :AINDEXNAME
DO BEGIN
EXECUTE STATEMENT 'SET STATISTICS INDEX '||:AINDEXNAME;
ACOUNT=ACOUNT+1;
END
suspend;
end
Тут есть небольшой минус: статистика начнет собираться по ВСЕМ индексам
при последующем коммите, что даст длительный зависон программы и тормоза
в сервере. Если же делать по очереди с клиента - будут небольшие дырочки
в загрузке.