摘要:
1、创建测试表、插入数据 postgres=# create table test_like(id int, name varchar); CREATE TABLE postgres=# insert into test_like select generate_series(1,1000000), 阅读全文
摘要:
1、背景 在PG中,我们经常因为执行不知道多久结束而苦恼,主要集中在: 1)vacuum、vacuum full(阻塞读写)、analyze 2)pg_dump、pg_restore,缺少进度条,尤其对于大表的导出,只能通过数据量大致估算,但数据在DB中和磁盘上的量是有偏差的。 3)create i 阅读全文
摘要:
explain update test t set crt_time = now() where exists(select 1 from test1 t1 where t1.id = t.id); -> Update on test t (cost=396607.58..1934979.49 ro 阅读全文
摘要:
事务隔离级别实验--SQL在等待锁结束之后,是否会再次获取快照 跟同事讨论一个删除的诡异操作,在Oracle中一个事务中删除再插入,另外一个事务也进行删除,被夯住,当阻塞结束之后,Oracle会将新插入的这条删除,而PG不会,于是进行一下深挖: 测试表结构及数据: drop table employ 阅读全文
摘要:
最近一个同事说可以对PG的表做增量备份,备份针对表的增量SQL,从wal中解析。 着实好奇,搜了一下,应该还没实现,这篇文章很有意思,先转载过来,后续慢慢研究: 转自:http://blog.chinaunix.net/uid-20726500-id-5830666.html 1. 背景 最近在wa 阅读全文
摘要:
PostgreSQL Event trigger 使用记录:阻断危险SQL、记录DDL操作 CREATE EVENT TRIGGER — define a new event trigger 语法 CREATE EVENT TRIGGER name ON event [ WHEN filter_va 阅读全文
摘要:
写的特别好,基本上把我想写都写了,就转载吧。 WAL机制简介 WAL即 Write-Ahead Logging,是一种实现事务日志的标准方法。WAL 的中心思想是先写日志,再写数据,数据文件的修改必须发生在这些修改已经记录在日志文件中之后。采用WAL日志的数据库系统在事务提交时,WAL机制可以从两个 阅读全文
摘要:
--1.创建模拟数据 DROP TABLE test; CREATE TABLE test(id int, info text); INSERT INTO test SELECT generate_series(1, 10), 'test'; --2.创建存储过程 CREATE OR REPLACE 阅读全文
摘要:
prepare的使用: 众所周知,在执行一个SQL时,首先生成执行计划(进行语义分析、词法解析、逻辑优化、物理优化)、执行、结果传输等操作。如果一个SQL在应用中反复使用,我们可以将此SQL参数化,只做一次prepare,后面执行时就不需要进行前面执行计划的生成操作,直接使用prepare好的执行计 阅读全文
摘要:
传参类型说明: in: 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。 out: 模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程。简单说:out参数在调用的时候,不需要传入参数(尝试传入会报错),不需要rutrun该参数,functio 阅读全文