iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么使用PostgreSQL扩展函数
  • 717
分享到

怎么使用PostgreSQL扩展函数

2024-04-02 19:04:59 717人浏览 安东尼
摘要

这篇文章主要讲解了“怎么使用postgresql扩展函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Postgresql扩展函数”吧!例子.&nb

这篇文章主要讲解了“怎么使用postgresql扩展函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Postgresql扩展函数”吧!

例子

. ./env11.sh  
  
git clone https://GitHub.com/MasaoFujii/pg_cheat_funcs  
  
cd pg_cheat_funcs/  
  
USE_PGXS=1 make  
  
USE_PGXS=1 make install
postgres=# create extension pg_cheat_funcs ;  
CREATE EXTENSION

1、打印内存上下文

postgres=# select * from pg_stat_get_memory_context();  
           name           |       parent       | level | total_bytes | total_nblocks | free_bytes | free_chunks | used_bytes   
--------------------------+--------------------+-------+-------------+---------------+------------+-------------+------------  
 TopMemoryContext         |                    |     0 |      312552 |            11 |      40520 |          21 |     272032  
 dynahash                 | TopMemoryContext   |     1 |        8192 |             1 |       1456 |           0 |       6736  
 TopTransactionContext    | TopMemoryContext   |     1 |        8192 |             1 |       7744 |           1 |        448  
 PL/pgSQL function        | TopMemoryContext   |     1 |       16384 |             2 |       7176 |           1 |       9208  
 dynahash                 | TopMemoryContext   |     1 |        8192 |             1 |        560 |           0 |       7632  
 dynahash                 | TopMemoryContext   |     1 |        8192 |             1 |        560 |           0 |       7632  
 dynahash                 | TopMemoryContext   |     1 |       24528 |             2 |       2624 |           0 |      21904  
 dynahash                 | TopMemoryContext   |     1 |        8192 |             1 |       2096 |           0 |       6096  
 dynahash                 | TopMemoryContext   |     1 |        8192 |             1 |       1584 |           0 |       6608  
 dynahash                 | TopMemoryContext   |     1 |       24576 |             2 |      10760 |           3 |      13816  
 RowDescriptionContext    | TopMemoryContext   |     1 |        8192 |             1 |       6896 |           0 |       1296  
 MessageContext           | TopMemoryContext   |     1 |       32768 |             3 |      10904 |           1 |      21864  
 dynahash                 | TopMemoryContext   |     1 |        8192 |             1 |        560 |           0 |       7632  
 dynahash                 | TopMemoryContext   |     1 |       32768 |             3 |      16832 |           8 |      15936  
 TransactionAbortContext  | TopMemoryContext   |     1 |       32768 |             1 |      32512 |           0 |        256  
 dynahash                 | TopMemoryContext   |     1 |        8192 |             1 |        560 |           0 |       7632  
 TopPortalContext         | TopMemoryContext   |     1 |        8192 |             1 |       7664 |           0 |        528  
 PortalContext            | TopPortalContext   |     2 |        1024 |             1 |        592 |           0 |        432  
 ExecutorState            | PortalContext      |     3 |       49208 |             4 |      15576 |           3 |      33632  
 printtup                 | ExecutorState      |     4 |        8192 |             1 |       7936 |           0 |        256  
 Table function arguments | ExecutorState      |     4 |        8192 |             1 |       7936 |           0 |        256  
 ExprContext              | ExecutorState      |     4 |        8192 |             1 |       4536 |           0 |       3656  
 dynahash                 | TopMemoryContext   |     1 |       16384 |             2 |       3512 |           2 |      12872  
 CacheMemoryContext       | TopMemoryContext   |     1 |      524288 |             7 |      20960 |          26 |     503328  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        624 |           1 |       1424  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        624 |           1 |       1424  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        624 |           1 |       1424  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        624 |           1 |       1424  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        680 |           1 |       1368  
 EventTriggerCache        | CacheMemoryContext |     2 |        8192 |             1 |       7936 |           2 |        256  
 dynahash                 | EventTriggerCache  |     3 |        8192 |             1 |       2624 |           0 |       5568  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 relation rules           | CacheMemoryContext |     2 |       16384 |             5 |       7352 |           0 |       9032  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        648 |           2 |       1400  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        704 |           3 |       1344  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         16 |           0 |       1008  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        680 |           2 |       1368  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        592 |           3 |       1456  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        680 |           2 |       1368  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        3072 |             2 |       1136 |           2 |       1936  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        704 |           3 |       1344  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         16 |           0 |       1008  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        3072 |             2 |       1136 |           2 |       1936  
 index info               | CacheMemoryContext |     2 |        3072 |             2 |       1136 |           2 |       1936  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        704 |           3 |       1344  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        680 |           2 |       1368  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        728 |           1 |       1320  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        624 |           2 |       1424  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        672 |           3 |       1376  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        704 |           3 |       1344  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        680 |           2 |       1368  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        624 |           2 |       1424  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         16 |           0 |       1008  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        680 |           2 |       1368  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        3072 |             2 |       1136 |           2 |       1936  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        728 |           1 |       1320  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        728 |           1 |       1320  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        680 |           2 |       1368  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        728 |           1 |       1320  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         48 |           0 |        976  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        704 |           3 |       1344  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         16 |           0 |       1008  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        760 |           2 |       1288  
 index info               | CacheMemoryContext |     2 |        1024 |             1 |         16 |           0 |       1008  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        728 |           1 |       1320  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 index info               | CacheMemoryContext |     2 |        2048 |             2 |        952 |           1 |       1096  
 WAL record construction  | TopMemoryContext   |     1 |       49768 |             2 |       6368 |           0 |      43400  
 dynahash                 | TopMemoryContext   |     1 |        8192 |             1 |       2624 |           0 |       5568  
 MdSmgr                   | TopMemoryContext   |     1 |        8192 |             1 |       7432 |           0 |        760  
 dynahash                 | TopMemoryContext   |     1 |        8192 |             1 |        560 |           0 |       7632  
 dynahash                 | TopMemoryContext   |     1 |      104120 |             2 |       2624 |           0 |     101496  
 ErrorContext             | TopMemoryContext   |     1 |        8192 |             1 |       7936 |           0 |        256  
(121 rows)

2、文本压缩

  postgres=# select pglz_compress(repeat(md5(random()::text),1024));                                                                                                                                                      pglz_compress                                                                                                        
-------------------------------------------------------------------------------------------------------------------------------------  
 \x00800040006135663437636166003162353066626137006637356161363639003532316233336139ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f  
20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f2  
0ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f  
20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20e7  
(1 row)

3、解压缩

pglz_decompress(bytea)  
  
postgres=# select pglz_compress(repeat(md5(random()::text),8));  
                                       pglz_compress                                          
--------------------------------------------------------------------------------------------  
 \x00010040003236666162656631003262323262636230006462656638616330003536343161383937010f20ce  
(1 row)  
  
postgres=# select pglz_decompress('\x00010040003236666162656631003262323262636230006462656638616330003536343161383937010f20ce');  
             pglz_decompress      
------------------------------------------------------------------------------  
 26fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22  
bcb0dbef8ac05641a897  
(1 row)

4、查看绑定变量QUERY的PLAN COSE。

postgres=# prepare a (name) as select * from pg_class where relname=$1;
PREPARE
postgres=# select * from pg_cached_plan_source('a');
 generic_cost | total_custom_cost | num_custom_plans | force_generic | force_custom 
--------------+-------------------+------------------+---------------+--------------
           -1 |                 0 |                0 | f             | f
(1 row)
postgres=# execute a('abc');
 relname | relnamespace | reltype | reloftype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | relallvisible | reltoastrelid | relhasindex | relisshared | relpersistence | relkind | relnatts | relchecks | relhaso
ids | relhasrules | relhastriggers | relhassubclass | relrowsecurity | relforcerowsecurity | relispopulated | relreplident | relispartition | relrewrite | relfrozenxid | relminmxid | relacl | reloptions | relpartbound 
---------+--------------+---------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+----------------+---------+----------+-----------+--------
----+-------------+----------------+----------------+----------------+---------------------+----------------+--------------+----------------+------------+--------------+------------+--------+------------+--------------
(0 rows)
postgres=# select * from pg_cached_plan_source('a');
 generic_cost | total_custom_cost | num_custom_plans | force_generic | force_custom 
--------------+-------------------+------------------+---------------+--------------
           -1 |  4.61208554676785 |                1 | f             | f
(1 row)
postgres=# execute a('abc');
 relname | relnamespace | reltype | reloftype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | relallvisible | reltoastrelid | relhasindex | relisshared | relpersistence | relkind | relnatts | relchecks | relhaso
ids | relhasrules | relhastriggers | relhassubclass | relrowsecurity | relforcerowsecurity | relispopulated | relreplident | relispartition | relrewrite | relfrozenxid | relminmxid | relacl | reloptions | relpartbound 
---------+--------------+---------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+----------------+---------+----------+-----------+--------
----+-------------+----------------+----------------+----------------+---------------------+----------------+--------------+----------------+------------+--------------+------------+--------+------------+--------------
(0 rows)
postgres=# select * from pg_cached_plan_source('a');
 generic_cost | total_custom_cost | num_custom_plans | force_generic | force_custom 
--------------+-------------------+------------------+---------------+--------------
           -1 |  9.22417109353571 |                2 | f             | f
(1 row)

感谢各位的阅读,以上就是“怎么使用PostgreSQL扩展函数”的内容了,经过本文的学习后,相信大家对怎么使用PostgreSQL扩展函数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么使用PostgreSQL扩展函数

本文链接: https://www.lsjlt.com/news/64827.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-14
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-14
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-14
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-14
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-14
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-14
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-14
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-14
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作