PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Funkcja działa szybciej bez modyfikatora STRICT?

Może obciążenie wynikające z wielokrotnego wywołania funkcji, które jest usprawnione przez wbudowanie funkcji?

Tak właśnie przypuszczam. Masz bardzo proste wyrażenie. Rzeczywiste wywołanie funkcji prawdopodobnie obejmuje konfigurację stosu, przekazywanie parametrów itp.

Poniższy test daje czasy działania 5 ms dla inline i 50 ms dla ścisłego.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fluent NHibernate i PostgreSQL, SchemaMetadataUpdater.QuoteTableAndColumns — System.NotSupportedException:określona metoda nie jest obsługiwana

  2. Ustawianie limitu czasu połączenia z PDO

  3. Jaki jest format ciągu połączenia / adresu URL PostgreSQL?

  4. Jak odczytać wszystkie wiersze z ogromnego stołu?

  5. MigrationSchemaMissing (Nie można utworzyć tabeli django_migrations (%s) % exc)