调整SET_TABLE_PREFS,按照表来单独设置,减低stale的百分比,比如变化1%就收集统计信息 调整 ESTIMATE_PERCENT的比例,不用AUTO_SAMPLE_SIZE,而用更低的采样比例 High-frequency Optimizer Statistics Collectio […]
数据库内查询pg的表结构定义
需要利用到plperlu和自己写一个system函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
-bash-4.2$ psql psql (9.6.2) Type "help" for help. postgres=# create extension plperlu; CREATE EXTENSION postgres=# \dx List of installed extensions Name | Version | Schema | Description ---------+---------+------------+---------------------------------------- plperlu | 1.0 | pg_catalog | PL/PerlU untrusted procedural language plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (2 rows) |
1 2 3 4 5 |
postgres=# CREATE OR REPLACE FUNCTION system(text) RETURNS text postgres-# AS 'my $cmd=shift; return `cd /tmp;$cmd`;' LANGUAGE plperlu; CREATE FUNCTION postgres=# postgres=# |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
postgres=# select system('pg_dump -s -t orasup_test1 dbinfo2 |egrep -v "^--|^$"'); system ----------------------------------------------------- SET statement_timeout = 0; + SET lock_timeout = 0; + SET idle_in_transaction_session_timeout = 0; + SET client_encoding = 'UTF8'; + SET standard_conforming_strings = on; + SET check_function_bodies = false; + SET client_min_messages = warning; + SET row_security = off; + SET search_path = public, pg_catalog; + SET default_tablespace = ''; + SET default_with_oids = false; + CREATE TABLE orasup_test1 ( + a integer, + b character varying(200) + ); + ALTER TABLE orasup_test1 OWNER TO djidba_rw; + CREATE INDEX idx_b ON orasup_test1 USING btree (b);+ (1 row) postgres=# postgres=# |
pg常用大小查询
查出所有数据库大小:
1 |
select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database order by size desc; |
查出所有表按大小排序并分离data与index:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SELECT table_name, pg_size_pretty(table_size) AS table_size, pg_size_pretty(indexes_size) AS indexes_size, pg_size_pretty(total_size) AS total_size FROM ( SELECT table_name, pg_table_size(table_name) AS table_size, pg_indexes_size(table_name) AS indexes_size, pg_total_relation_size(table_name) AS total_size FROM ( SELECT ('"' || table_schema || '"."' || table_name || '"') AS table_name FROM information_schema.tables ) AS all_tables ORDER BY total_size DESC ) AS pretty_sizes; |
查看索引大小:
1 2 3 4 |
select relname as table_name,pg_size_pretty(pg_relation_size(relid)) as table_size, indexrelname as index_name, pg_size_pretty(pg_relation_size(indexrelid)) as index_size from pg_stat_user_indexes order by pg_relation_size(indexrelid) desc; |
小记MySQL的锁和事务
(一)先说明一下定义: 1. 读现象(Read phenomena): SQL 92标准规定了3种不同的读现象。脏读、不可重复读和幻读。分别解释一下。 1.1 脏读: A dirty read (aka uncommitted dependency) occurs when a transactio […]
MySQL waiting for metadata lock的分析
处理waiting for metadata lock,需要: 1. 平时打开performance_schema(以下简称PS)的instruments。 2. 查询PS.metadata_locks ,找到状态为PENDING的thread。 3. 查询PS.threads,关联PS.metad […]
小记scn head room
小记一下前段时间看的scn head room的问题。 1. scn的最大值。scn的表示是SCN_WRAP.SCN_BASE,最大值是 ffff.ffffffff,即65535.4294967295,也就是每当scn_base到ffffffff(或者说4294967295)的时候,scn wrap […]
在Docker上安装oracle 19c
基于docker的安装非常简单。 其实就两行核心命令:
1 2 |
./buildDockerImage.sh -v 19.2.0 -e docker run --name oracle19c -p 1521:1521 -p 5500:5500 -v /Users/lovehouse/iDocker/dockervolums/oradata/oracle19c:/opt/oracle/oradata oracle/database:19.2.0-ee |
我们假设你已经在Mac上安装好了docker,我们开始安装oracle 19c。在docker上安装数据库或应用,是基于dockerfile的,目前Oracle官方还没发布基于1 […]
raft协议学习笔记
注,需要注意的是raft是个默认消息可靠,但是不提防消息有害的系统。 (一). 共识机制有2种: 一种是leader-less(对称的),即没有leader,大家都是平等的,客户端可以连接任意的节点。 一种是leader-base(非对称的),即有leader,在任意的某个时间点,只有一个leade […]
18c新特性的一些小结
Oracle 18c在2018-02-16 release出来的,还是秉承着Oracle的cloud first理念,18c现在cloud和Engineered Systems上推出,想在传统的机器上安装18c,估计还要等到2018年下半年。 下面,我从我的角度,来快速review一下值得关注的18 […]
官方推荐的MySQL参数设置值
今天,在找MySQL补丁的时候,在metalink找到一篇非常好的文章。这oracle官方推荐的在OLTP环境下,MySQL参数设置的最佳实践。 下面的参数设置,对系统的性能会很有帮助。但是建议大家还是结合实际情况使用。 APPLIES TO: MySQL Server – Versio […]
Oracle 12.2 新特性介绍
计划明年等12.2.0.2出来之后,在公司全面推行oracle 12.2版本数据库。 在此之前,为了团队做好知识储备,总结了一下12.2的新特性,进行宣讲。 【PDF下载】:Oracle 12.2新特性介绍
远程数据库的表超过20个索引的影响
昨天同事参加了一个研讨会,有提到一个案例。一个通过dblink查询远端数据库,原来查询很快,但是远端数据库增加了一个索引之后,查询一下子变慢了。 经过分析,发现那个通过dblink的查询语句,查询远端数据库的时候,是走索引的,但是远端数据库添加索引之后,如果索引的个数超过20个,就会忽略第一个建立的 […]