исходные данные
таблица table1 в ней 1.5млн записей состоит из одного поля id integer
выполняем запрос
select count(*) from table1
время 1.6 сек
делаем вьюху
CREATE VIEW v1( ID)
AS
select id from table1
;
выпоняем
select count(*) from v1
время 1.6сек
пока все хорошо
создаем процедуру
CREATE PROCEDURE P1
returns (
id integer)
as
begin
for select id from table1
into :id
do
suspend ;
end
и выполняем запрос
select count(*) from p1
время 4.2сек
нифига себе накладные расходы на вызов процедуры!
но идем дальше
CREATE PROCEDURE P2
returns (
id integer)
as
begin
for select id from p1 into :id do
suspend;
end
т.е. внутри процедуры вызываем еще одну
и время получаем уже 7 сек
эти накладные расходы никак не оптимизировать?
И почему их нет у view а есть только у SP?
--
С уважением
Кочмин Александр
Firebird Foundation associate member #257