1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-PgFincore

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
pgfincore--1.3.1.sql 4.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Cédric Villemain Отправлено 21.09.2023 18:41 34af214
--
-- SYSCONF
--
CREATE OR REPLACE FUNCTION
pgsysconf(OUT os_page_size bigint,
OUT os_pages_free bigint,
OUT os_total_pages bigint)
RETURNS record
AS '$libdir/pgfincore'
LANGUAGE C;
COMMENT ON FUNCTION pgsysconf()
IS 'Get system configuration information at run time:
- os_page_size is _SC_PAGESIZE
- os_pages_free is _SC_AVPHYS_PAGES
- os_total_pages is _SC_PHYS_PAGES
man 3 sysconf for details';
CREATE OR REPLACE FUNCTION
pgsysconf_pretty(OUT os_page_size text,
OUT os_pages_free text,
OUT os_total_pages text)
RETURNS record
AS '
select pg_size_pretty(os_page_size) as os_page_size,
pg_size_pretty(os_pages_free * os_page_size) as os_pages_free,
pg_size_pretty(os_total_pages * os_page_size) as os_total_pages
from pgsysconf()'
LANGUAGE SQL;
COMMENT ON FUNCTION pgsysconf_pretty()
IS 'Pgsysconf() with human readable output';
--
-- PGFADVISE
--
CREATE OR REPLACE FUNCTION
pgfadvise(IN regclass, IN text, IN int,
OUT relpath text,
OUT os_page_size bigint,
OUT rel_os_pages bigint,
OUT os_pages_free bigint)
RETURNS setof record
AS '$libdir/pgfincore'
LANGUAGE C;
COMMENT ON FUNCTION pgfadvise(regclass, text, int)
IS 'Predeclare an access pattern for file data';
CREATE OR REPLACE FUNCTION
pgfadvise_willneed(IN regclass,
OUT relpath text,
OUT os_page_size bigint,
OUT rel_os_pages bigint,
OUT os_pages_free bigint)
RETURNS setof record
AS 'SELECT pgfadvise($1, ''main'', 10)'
LANGUAGE SQL;
CREATE OR REPLACE FUNCTION
pgfadvise_dontneed(IN regclass,
OUT relpath text,
OUT os_page_size bigint,
OUT rel_os_pages bigint,
OUT os_pages_free bigint)
RETURNS setof record
AS 'SELECT pgfadvise($1, ''main'', 20)'
LANGUAGE SQL;
CREATE OR REPLACE FUNCTION
pgfadvise_normal(IN regclass,
OUT relpath text,
OUT os_page_size bigint,
OUT rel_os_pages bigint,
OUT os_pages_free bigint)
RETURNS setof record
AS 'SELECT pgfadvise($1, ''main'', 30)'
LANGUAGE SQL;
CREATE OR REPLACE FUNCTION
pgfadvise_sequential(IN regclass,
OUT relpath text,
OUT os_page_size bigint,
OUT rel_os_pages bigint,
OUT os_pages_free bigint)
RETURNS setof record
AS 'SELECT pgfadvise($1, ''main'', 40)'
LANGUAGE SQL;
CREATE OR REPLACE FUNCTION
pgfadvise_random(IN regclass,
OUT relpath text,
OUT os_page_size bigint,
OUT rel_os_pages bigint,
OUT os_pages_free bigint)
RETURNS setof record
AS 'SELECT pgfadvise($1, ''main'', 50)'
LANGUAGE SQL;
--
-- PGFADVISE_LOADER
--
CREATE OR REPLACE FUNCTION
pgfadvise_loader(IN regclass, IN text, IN int, IN bool, IN bool, IN varbit,
OUT relpath text,
OUT os_page_size bigint,
OUT os_pages_free bigint,
OUT pages_loaded bigint,
OUT pages_unloaded bigint)
RETURNS setof record
AS '$libdir/pgfincore'
LANGUAGE C;
COMMENT ON FUNCTION pgfadvise_loader(regclass, text, int, bool, bool, varbit)
IS 'Restore cache from the snapshot, options to load/unload each block to/from cache';
CREATE OR REPLACE FUNCTION
pgfadvise_loader(IN regclass, IN int, IN bool, IN bool, IN varbit,
OUT relpath text,
OUT os_page_size bigint,
OUT os_pages_free bigint,
OUT pages_loaded bigint,
OUT pages_unloaded bigint)
RETURNS setof record
AS 'SELECT pgfadvise_loader($1, ''main'', $2, $3, $4, $5)'
LANGUAGE SQL;
--
-- PGFINCORE
--
CREATE OR REPLACE FUNCTION
pgfincore(IN regclass, IN text, IN bool,
OUT relpath text,
OUT segment int,
OUT os_page_size bigint,
OUT rel_os_pages bigint,
OUT pages_mem bigint,
OUT group_mem bigint,
OUT os_pages_free bigint,
OUT databit varbit,
OUT pages_dirty bigint,
OUT group_dirty bigint)
RETURNS setof record
AS '$libdir/pgfincore'
LANGUAGE C;
COMMENT ON FUNCTION pgfincore(regclass, text, bool)
IS 'Utility to inspect and get a snapshot of the system cache';
CREATE OR REPLACE FUNCTION
pgfincore(IN regclass, IN bool,
OUT relpath text,
OUT segment int,
OUT os_page_size bigint,
OUT rel_os_pages bigint,
OUT pages_mem bigint,
OUT group_mem bigint,
OUT os_pages_free bigint,
OUT databit varbit,
OUT pages_dirty bigint,
OUT group_dirty bigint)
RETURNS setof record
AS 'SELECT * from pgfincore($1, ''main'', $2)'
LANGUAGE SQL;
CREATE OR REPLACE FUNCTION
pgfincore(IN regclass,
OUT relpath text,
OUT segment int,
OUT os_page_size bigint,
OUT rel_os_pages bigint,
OUT pages_mem bigint,
OUT group_mem bigint,
OUT os_pages_free bigint,
OUT databit varbit,
OUT pages_dirty bigint,
OUT group_dirty bigint)
RETURNS setof record
AS 'SELECT * from pgfincore($1, ''main'', false)'
LANGUAGE SQL;
CREATE OR REPLACE FUNCTION
pgfincore_drawer(IN varbit,
OUT drawer cstring)
RETURNS cstring
AS '$libdir/pgfincore'
LANGUAGE C;
COMMENT ON FUNCTION pgfincore_drawer(varbit)
IS 'A naive drawing function to visualize page cache per object';

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-PgFincore.git
git@api.gitlife.ru:oschina-mirror/mirrors-PgFincore.git
oschina-mirror
mirrors-PgFincore
mirrors-PgFincore
master