kingbase常用SQL总结之统计大小

news/2024/7/9 19:58:30 标签: sql, 数据库, 运维, KINGBASE, postgresql

概述

数据库运维中,我们需要总结一些常用的SQL语句,无论是日常巡检、故障排查或是死锁分析,都可以随时拿来用,提升工作效率,下面是一些常见的经典SQL或者是笔者自己工作过程中用到的常用的SQL,整理记录以备不时之需。
小建议:还可以将不同的SQL进行分类整理,通过一个shell脚本去调用不同的SQL脚本,拿到想要的信息和数据。这是笔者在某基金项目向他们DBA学到的很好用。

kingbase基于pg那个版本的SQL语句

test=# select name,setting from sys_settings where name='server_version';
-[ RECORD 1 ]-----------
name    | server_version
setting | 12.1

获取统计信息常用SQL

查询表大小SQL

函数解析
pg_relation_size ( relation regclass [, fork text ] ) → bigint,只查询表数据大小
   Computes the disk space used by one “fork” of the specified relation
pg_table_size ( regclass ) → bigint,统计表大小+空闲映射空间文件大小+可见性文件大小
  Computes the disk space used by the specified table, excluding indexes (but including its TOAST table if any, free space map, and visibility map).
pg_total_relation_size ( regclass ) → bigint: pg_table_size +和表相关的索引大小
  Computes the total disk space used by the specified table, including all indexes and TOAST data. The result is equivalent to pg_table_size + pg_indexes_size.
  
test=# select pg_size_pretty(pg_total_relation_size(oid::regclass)) from pg_class where relname='fb_example';
 pg_size_pretty
----------------
 56 kB

test=# select pg_size_pretty(pg_relation_size(oid::regclass)) from pg_class where relname='fb_example'; --常用SQL
 pg_size_pretty
----------------
 8192 bytes

test=# select pg_size_pretty(pg_table_size(oid::regclass)) from pg_class where relname='fb_example';
 pg_size_pretty
----------------
 40 kB

查询模式大小SQL

了解了pg_relation_size、pg_table_size和pg_total_relation_size 就可以计算模式大小了。

SELECT 
    pg_size_pretty(
        sum(pg_relation_size(C.oid))
    ) as schema_size
FROM 
    pg_class C
JOIN 
    pg_namespace N ON (N.oid = C.relnamespace)
WHERE 
    N.nspname ='your schema name';

查询库大小SQL

select pg_size_pretty(pg_database_size(oid::regclass)) from pg_database;

查询top10表大小

    SELECT 
    nspname AS schema_name,
    relname AS table_name,
    pg_size_pretty(pg_relation_size(c.oid::regclass)) AS size
FROM 
    pg_class C
JOIN 
    pg_namespace N ON (N.oid = C.relnamespace)
WHERE 
    N.nspname = 'your schema name'  and c.relkind='r' -- 替换为你要查询的模式名称
ORDER BY 
    pg_relation_size(c.oid::regclass) DESC
LIMIT 10;

查询top10索引大小

    SELECT 
    nspname AS schema_name,
    relname AS table_name,
    pg_size_pretty(pg_relation_size(c.oid::regclass)) AS size
FROM 
    pg_class C
JOIN 
    pg_namespace N ON (N.oid = C.relnamespace)
WHERE 
    N.nspname = 'your schema name' and c.relkind='i' -- 替换为你要查询的模式名称
ORDER BY 
    pg_relation_size(c.oid::regclass) DESC
LIMIT 10;

查询事务号top10的表

select relnamespace::regnamespace,relname,pg_size_pretty(pg_relation_size(oid)),age(relfrozenxid) from pg_class where relkind='r' and relpersistence !='x' and order by age(relfrozenxid) desc,pg_relation_size(oid) desc limit 10;

查询执行次数最频繁的top10 SQL

前置条件,需要开启sys_stat_statement/pg_stat_statement插件 配置好相关参数

test=# show shared_preload_libraries ;
                                                                                                                        shared_preload_libraries
---------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
 liboracle_parser, synonym, plsql, force_view, kdb_flashback,plugin_debugger, plsql_plugin_debugger, plsql_plprofiler, kdb_ora_expr, sepapower, dblink, sys_kwr
, sys_spacequota, sys_stat_statements, backtrace, kdb_utils_function, auto_bmr, sys_squeeze, src_restrict
test=# show sys_stat_statements.track;
 sys_stat_statements.track
---------------------------
 top
test =# show sys_stat_statements.max ;
 sys_stat_statements.max
-------------------------
 10000
--查询执行次数最频繁的top10 SQL
select calls,userid::regrole,total_exec_time,total_exec_time/calls avg_exec_time_one_time,queryid,substr(query,1,1000)
from sys_stat_statements
where userid not in (select oid from pg_roles where rolname ='esrep' or rolname='system') and calls>0
and upper(query) not like 'COPY%' order by total_exec_time/calls desc limit 10;

如有不正确之处请评论指出,感谢 感谢。


http://www.niftyadmin.cn/n/5340169.html

相关文章

RK3399平台开发系列讲解(高速设备驱动篇)6.9、SD卡读写流程

🚀返回总目录 文章目录 一、SD卡相关命令介绍1.1、读操作1.2、写操作一、SD卡相关命令介绍 SD卡的读写流程中,需要使用一些特定的命令(CMD)与SD卡进行通信。以下是一些常见的SD卡命令: CMD0(GO_IDLE_STATE): 这是初始化命令,用于将SD卡置于空闲状态。CMD8(SEND_IF_…

Java实现超市账单管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3.3 后端设计在这里插入图片描述 四、系统展示五、核心代码5.1 查询供应商5.2 查询商品5.3 新增超市账单5.4 编辑超市账单5.5 查询超市账单 六、免责说明 一、摘要 1.1 项目介绍 基于…

二进制部署高可用k8s集群V1.20.11版本

文章目录 一、操作系统初始化配置(所有节点均执行)1、关闭防火墙2、关闭selinux3、关闭swap4、根据规划修改主机名5、在master节点上添加host6、将桥接的IPv4流量传递到iptables的链7、时间同步 二、部署Etcd集群1、准备cfssl证书生成工具2、生成Etcd证书…

Go 语言实现冒泡排序算法的简单示例

以下是使用 Go 语言实现冒泡排序算法的简单示例&#xff1a; package mainimport "fmt"func bubbleSort(arr []int) {n : len(arr)for i : 0; i < n-1; i {for j : 0; j < n-i-1; j {if arr[j] > arr[j1] {// 交换元素arr[j], arr[j1] arr[j1], arr[j]}}}…

云计算任务调度仿真05

今天再分享一个新的调度框架deeprm 本项目基于hongzimao/deeprm&#xff0c;原作者还著有论文Resource Management with Deep Reinforcement Learning 。 这个框架研究的也蛮多的&#xff0c;我在一篇博士论文中也看到了基于此的研究工作&#xff0c;但是论文题目忘记了。 运…

Leetcode 3012. Minimize Length of Array Using Operations

Leetcode 3012. Minimize Length of Array Using Operations 1. 解题思路2. 代码实现 题目链接&#xff1a;3012. Minimize Length of Array Using Operations 1. 解题思路 这一题有一点数学题的意思&#xff0c;显然&#xff0c;根据最大公约数相关的知识&#xff0c;我们知…

459. 重复的子字符串(Java)

题目描述&#xff1a; 给定一个非空的字符串 s &#xff0c;检查是否可以通过由它的一个子串重复多次构成。 输入: s “abcabcabcabc” 输出: true 解释: 可由子串 “abc” 重复四次构成。 (或子串 “abcabc” 重复两次构成。) 代码实现&#xff1a; public class Main{publi…

ElasticSearch 7.x现网运行问题汇集2

问题描述 现网indices有数据&#xff0c;如下&#xff0c;GET /_cat/indices得到的结果里&#xff0c;待查索引显示有数据472033条&#xff0c;但是Postman 发查询语句GET /_search match_all&#xff0c;查不出数据&#xff1b;GET /_count也是0。索引状态也是open&#xff0…