Postgresql
文章平均质量分 65
postgresql布道
中年如酒
懵懂半生,庸碌尘世中,
不见远方,也找不回故乡,
人生如梦
展开
-
postgresql subtransaction以及他的效能
postgresql subtransaction以及它的效能原创 2024-10-24 23:33:41 · 1056 阅读 · 0 评论 -
postgresql-重复执行相同语句,试试 prepare!
postgresql-重复执行相同语句,试试 prepare!原创 2024-10-02 16:04:32 · 525 阅读 · 0 评论 -
【无标题】为什么 pg_rewind 在 PostgreSQL 中很重要?
pg_rewind是 PostgreSQL 中的一个实用程序,用于将一个数据库集群与另一个数据库集群同步,通常是在故障转移或主服务器和备用服务器角色切换之后。当旧主服务器需要在故障转移后作为备用服务器重新加入新的主服务器时,它特别有用。原创 2024-08-22 23:58:31 · 767 阅读 · 0 评论 -
ERROR: permission denied for language c
error:permission denied for language c原创 2024-08-12 12:35:24 · 310 阅读 · 0 评论 -
PostgreSQL -public schema
public schema原创 2024-06-15 15:50:53 · 1033 阅读 · 0 评论 -
PostgreSQL Schema管理基础
PostgreSQL Schema管理基础原创 2024-06-11 15:30:11 · 1115 阅读 · 0 评论 -
非超级用户执行pg_terminate_backend
在事务中使用 REVOKE EXECUTE ON ALL FUNCTIONS 编写这两个函数的原因是,如果其他用户有权访问 dbo 模式(GRANT USAGE),他们将能够执行它们,因此在创建之后确保 REVOKE 对 PUBLIC 的权限。这样做的目的,因为可能有人会在其他schema创建与pg_terminate_backend同名的函数(可能用途不同),导致真正执行时pg_kill_connection函数时,调用到错误的函数。在我们的示例中,我们可以在没有事务(begin…原创 2024-05-13 23:51:35 · 751 阅读 · 0 评论 -
使用函数波动性优化 PostgreSQL 查询:Volatile, Stable, and Immutable
Optimizing PostgreSQL Queries with Function Volatility: Volatile, Stable, and Immutable原创 2024-05-12 22:52:36 · 709 阅读 · 0 评论 -
vacuum无法清除死行(dead rows)的原因
FOUR REASONS WHY VACUUM WON’T REMOVE DEAD ROWS FROM A TABLE原创 2024-03-13 15:40:01 · 1020 阅读 · 0 评论 -
使用 COPY 加速 PostgreSQL 批量插入
Speed up PostgreSQL bulk inserts with COPY原创 2023-11-22 10:48:42 · 1447 阅读 · 0 评论 -
postgresql:记录表膨胀引起的io问题的处理
postgresql:记录表膨胀引起的io问题的处理原创 2023-11-17 12:41:23 · 525 阅读 · 1 评论 -
postgresql \watch实用的使用方法
\watch使用方法原创 2023-08-18 15:47:27 · 864 阅读 · 0 评论 -
Postgresql警告日志的配置
Postgresql警告日志配置原创 2023-08-01 12:28:44 · 1211 阅读 · 0 评论 -
利用auto_explain查看sql、procedure、function实时执行计划
auto_explain原创 2023-07-03 12:34:15 · 1103 阅读 · 0 评论 -
Postgresql: ERROR: invalid type name......%TYPE
ERROR: invalid type name...%TYPE原创 2023-06-22 18:32:27 · 868 阅读 · 0 评论 -
postgresql优化案例三:recheck cond
recheck cond原创 2023-06-19 16:44:30 · 1034 阅读 · 2 评论 -
postgresql优化案例二
postgresql优化案例原创 2023-06-09 15:22:24 · 283 阅读 · 0 评论 -
postgresql优化案例一
pg优化案例原创 2023-06-08 18:24:52 · 369 阅读 · 0 评论 -
Postgersql神器之pgbadger安装配置
pgbadger 安装与配置原创 2023-03-27 12:37:22 · 1103 阅读 · 0 评论 -
自动产生pg_profile报告及发送邮件的脚本
附上一段自动产生pg_profile报告及发送邮件的脚本。原创 2023-03-14 18:05:36 · 174 阅读 · 0 评论 -
postgresql alter table/truncate table hang并阻塞其他事务执行的处理办法
postgresql alter table hang,and block other concurrency queries原创 2023-03-13 21:49:31 · 865 阅读 · 0 评论 -
使用 pg_profile 在 Postgres 中生成性能报告
使用 Pg_profile 在 Postgres 中生成性能报告翻译 2022-08-13 12:51:20 · 1428 阅读 · 0 评论 -
The PostgreSQL shared/global catalog
The PostgreSQL shared/global catalog翻译 2022-08-12 15:59:54 · 337 阅读 · 0 评论 -
Postgresql没有pid的transaction lock处理过程
1.在使用wal2json分析xlog,创建slot时,结果命令hang住了2.查看pg_stat_activity,发现正在等待lock,而且是等待事务锁3.既然是事务锁,就用收藏的查锁神器query一下,结果百试不爽的神器失灵了,返回nullSELECT bl.pid AS blocked_pid,a.usename AS blocked_user,ka.query AScurrent_or_recent_statement_in_blocking_process,ka.state A原创 2022-04-29 15:46:19 · 453 阅读 · 0 评论 -
postgresql查看table的freespace
Postgresql提供了pg_freespacemap扩展,默认系统没有这个扩展,需要去创建创建extension可以看到扩展有两个function:查看单个table freespaceSELECT count() as “number of pages”,pg_size_pretty(cast(avg(avail) as bigint)) as “Av. freespace size”,round(100 * avg(avail)/8192 ,2) as “Av. freespace原创 2022-04-19 15:33:41 · 471 阅读 · 0 评论 -
postgresql bitmap理解
benchmarksql=# EXPLAIN SELECT * FROM bmsql_customer WHERE c_city = ‘San Mateo’ or c_city=‘San Francisco’;QUERY PLANBitmap Heap Scan on bmsql_customer (cost=8.94…56.34 rows=12 width=558)Recheck Cond: (((c_city)::text = ‘San Mateo’::text) OR ((c_city)::te原创 2022-01-24 17:08:04 · 1682 阅读 · 0 评论 -
postgresql锁检测及处理(二)---识别lock table发起的表级锁
1.在session 1,begin事务执行lock table命令lock t1表在eclusive mode,不要commit或rollback2.开起session 2,begin事务执行同样的操作,这个事务将会hang住,等候先前的事务执行释放lock3.执行下面的SQL识别锁SELECTact1.query as blocking_query,act2.query as blocked_query,l1.pid AS blocked_pid,l2.pid AS blocking_原创 2022-03-19 18:08:10 · 1051 阅读 · 0 评论 -
postgresql锁检测及处理(一)---识别事务锁
1.模拟deadlock,begin一个事务,update表t12.开启另外的session,同样begin一个事务,使用同上的条件update同样的table这里,发现事务hang住了3.使用如下sql去检测事务级的deadlock.SELECT bl.pid AS blocked_pid,a.usename AS blocked_user,ka.query AS current_or_recent_statement_in_blocking_process,ka.state AS st原创 2022-03-18 18:26:46 · 990 阅读 · 0 评论 -
Postgresql关于t_infomask、t_infomast2
关于t_infomask与t_infomask2的栏位值定义转自https://dba.stackexchange.com/questions/308360/postgresql-pageinspect-what-does-t-infomask-t-infomask2-comparison-with-integer知道了这两个栏位值的定义,我们现在来验证一下1.先创建测试表t3,并创建一个index2.插入一行数据3.这里t_infomask值为2050,是2048与2与或运算后的结果,分别原创 2022-03-25 09:21:01 · 1024 阅读 · 0 评论 -
postgresql flush buffer
to clear the shared buffers, we do not have any predefined utility except instanceshutdown. So let’s shut down the PostgreSQL cluster to clear the database cache:$ pg_ctl -D data stop -mfwaiting for server to shut down… doneserver stopped4. To clear th原创 2022-01-20 11:58:20 · 646 阅读 · 0 评论 -
Postgeaql the Internals of PostgreSQL(一)---Database Cluster, Databases, and Tables
第一章数据库群集、数据库、表这个章节和下个章节概叙Postgresql基本的知识,这将帮助阅读随后的章节。在这章,将描叙如下主题:数据群集的逻辑结构数据库群集的物理结构堆表文件的内部布局对表读和写的方法假如你已经熟悉这些,可以跳过这章1.1 数据群集的逻辑结构一个数据库群集是指透过一个Postgresql server管理的数据库的集合。假如你第一次听见这个定义,你可能对此感到疑惑,但在PostgreSQL中的术语“database cluster"并不意味着”一组数据库服务器“,一个数据翻译 2022-04-03 21:45:50 · 291 阅读 · 0 评论 -
有关postgresql checkpoint_write_time与checkpoint_sync_time的理解
在stackexchange上找到一篇关于checkpoint_write_time与checkpoint_sync_time的讨论摘录如下:原文网址:https://dba.stackexchange.com/questions/185502/postgresql-checkpoint-log-explained/185557#185557I know what PostgreSQL checkpoint is and when it is happening.I need some additio原创 2022-01-13 18:06:16 · 508 阅读 · 0 评论 -
postgresql 页损坏(corrupted page)之checksum功能
1.验证数据库是否开启了checksum功能,0代表未开启,1为已开起2.创建测试表t3,并insert10万笔数据create table t3 (id int,name text)insert into t3 values(generate_series(1,100000),‘hello world’)3.5.定位table在文件系统中的位置4.模拟破坏table page5.尝试访问table,结果当table有corrupted page时,postgresql仅仅是返回0行数据来回原创 2022-03-27 22:31:04 · 1624 阅读 · 0 评论 -
Postgresql clustering table---按照指定索引的顺序建cluster table
类似vaccuum,PG也有一个命令叫cluster,用于按照指定索引的顺序去重建表,这样做的一个好处是避免索引扫描期间的索引查找开销1.我们先看看table结构,这个table有一个state_idx的索引2.再看看cluster索引之前的执行计划explain analyze select * from t3 where c_state=‘YK’3.尝试针对上图中使用的索引state_idx cluster 这张表进行cluster,注意因为cluster涉及rebuild table和in原创 2022-03-08 09:24:40 · 747 阅读 · 0 评论 -
postgresql pgpool连接问题处理:socketconnections on Unix domain socket “/var/run/postgresql/.s.PGSQL.999
配置好pgpool,用psql连接遇到如下错误:确认pgpool.conf$ vi /etc/pgpool/pgpool.conf修改默认值socket_dir = ‘/tmp’pcp_socket_dir = ‘/tmp’backend_socket_dir = ‘/tmp’到实际的位置socket_dir = ‘/var/run/postgresql’pcp_socket_dir = ‘/var/run/postgresql’backend_socket_dir = ‘/var/r原创 2022-03-10 12:09:54 · 1647 阅读 · 0 评论 -
postgresql 迁移表和索引至新的表空间
1.检查database,计划转移benchmarksql的table至新的tablespace2.检查tablespace,可以看到大部分数据都位于pg_default的tablespace3.登录root账户,创建tablespace所在的文件夹,并授权给postgres4.创建tablespace5.使用如下语句生成批量sqlselect ‘alter table ‘||relname||’ set tablespace bmsql_tbs;’ from pg_class where原创 2022-03-11 17:17:28 · 2126 阅读 · 0 评论 -
postgresql定位未使用的索引(unused index)
unused index会导致不必要的io开销,如写操作(insert、update)期间,必须维护所有index1.鉴于pg_stat_reset()函数能够reset统计信息到0,查找unused index时,先参考pg_stat_database的stats_reset的栏位的reset时间,只有一定时间跨度的统计信息才有意义select stats_reset from pg_stat_database2.之后可以结合pg_index、pg_stat_user_index视图查找未使用的in原创 2022-03-05 13:33:02 · 1010 阅读 · 2 评论 -
postgresql ERROR: could not load library plpgsql.so的处理
1.创建function时遇到ERROR: could not load library plpgsql.so,多半是因为使用了旧的版本2.查看postgresql版本3.寻找对应版本的so档案替换目前使用的plpgsql.so4.大功告成原创 2022-04-09 12:52:35 · 3454 阅读 · 0 评论