sql >> Databáze >  >> RDS >> PostgreSQL

Funkce se provádí rychleji bez modifikátoru STRICT?

Možná režie z opakovaného volání funkce, která je zjednodušena vložením funkce?

To bych tipoval. Máš tam velmi jednoduchý výraz. Skutečné volání funkce pravděpodobně zahrnuje nastavení zásobníku, předávání parametrů atd.

Níže uvedený test poskytuje doby běhu 5 ms pro inline a 50 ms pro striktní.

BEGIN;

CREATE SCHEMA f;

SET search_path = f;

CREATE FUNCTION f1(int) RETURNS int AS $$SELECT 1$$ LANGUAGE SQL;
CREATE FUNCTION f2(int) RETURNS int AS $$SELECT 1$$ LANGUAGE SQL STRICT;

\timing on
SELECT sum(f1(i)) FROM generate_series(1,10000) i;
SELECT sum(f2(i)) FROM generate_series(1,10000) i;
\timing off

ROLLBACK;


  1. jedna pevná tabulka s více sloupci vs flexibilní abstraktní tabulky

  2. Jak funguje ORIGINAL_DB_NAME() na serveru SQL Server

  3. Jak automaticky zavřít nečinná připojení v PostgreSQL?

  4. ZOBRAZIT TABULKY v MariaDB