KingbaesES数据库中遇到表膨胀,有时碰到vacuum失效的场景。最常见的原因如下。

以下测试基于有关analyze和autovacuum的默认阈值触发条件。

1.autovacuum是否运行,通过查看 sys_stat_user_tables 查看autovacuum_count字段次数。

select relname,autovacuum_count,last_autovacuum from sys_stat_all_tables;

2.是否有长时间运行的语句。

SELECT pid, datname, usename, state, backend_xmin,query,backend_type,query_start,client_addr
FROM sys_stat_activity
WHERE backend_xmin IS NOT NULL and sys_backend_pid() != pid
ORDER BY age(backend_xmin) DESC; select * from sys_stat_activity
where state<>'idle' and sys_backend_pid() != pid
and (backend_xid is not null or backend_xmin is not null ) and extract(epoch from (now() - xact_start)) > 3; <时间阈值,单位秒> ;

3.长时间不提交的事务。

select datname,application_name,client_addr,backend_start,xact_start,query,state,backend_xid,backend_xmin
from sys_stat_activity
where (state = 'idle in transaction')
and xact_start is not null;

4.两段式提交中,prepare操作操作由于某些原因迟迟不能commit的sql。

SELECT gid, prepared, owner, database, transaction AS xmin
FROM sys_prepared_xacts
ORDER BY age(transaction) DESC; select * from sys_prepared_statements;

5.复制槽视图中xmin字段值如果一直不变,说明备库有长事务获取过去的快照版本,长事务没有结束。

select * from sys_replication_slots ORDER BY age(xmin) DESC;

如果以上sql没有查到有用信息,那么我们看last_autovacuum字段信息来判断最近一次表的autovacuum的时间。

SELECT schemaname, relname, n_live_tup, n_dead_tup, last_autovacuum

FROM sys_stat_all_tables

ORDER BY n_dead_tup

/ (n_live_tup

* current_setting('autovacuum_vacuum_scale_factor')::float8

+ current_setting('autovacuum_vacuum_threshold')::float8)

DESC

LIMIT 10;

如果遇到某个对象一直没有触发autovacuum进程。可采用以下两种方法。

1.可以设置参数log_autovacuum_min_duration,为了在数据库日志中查看autovacuum记录。

2.通过手工vacuum verbose tablename 查看有关vacuum的详细信息以及vauucm不成功的原因,另外手工vaucum成功后,观察会不会触发自动autovacuum进程。

KingbaesES数据库查看阻止vacuum的常用语句的更多相关文章

  1. Mysql数据库基础增删改查常用语句命令

    Mysql增删改查常用语句命令 一.增删改查语句总览 创建: create(创建数据库) 增:insert(插入表数据) 删:drop.delete(删除表.删除表数据) 改:update.alter ...

  2. 【数据库】10.0 MySQL常用语句(一)

    显示数据库语句: SHOW DATABASES    只是显示数据库的名字 显示数据库创建语句: SHOW CREATE DATABASE db_name 数据库删除语句: DROP DATABASE ...

  3. MySql三大范式与数据库设计和表创建常用语句

    [数据库设计的三大范式] 1.第一范式(1NF First Normal Fromate):数据表中的每一列(字段),必须是不可拆分的最小单元.也就是确保每一列的原子性. 例如: userInfo: ...

  4. SQL数据库学习,常用语句查询大全

    数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...

  5. SQL-.db 数据库查看常用指令(转载)

    一下内容转载自http://blog.sina.com.cn/s/blog_74dfa9f401017s69.html 简介sqlite3一款主要用于嵌入式的轻量级数据库,本文旨在为熟悉sqlite3 ...

  6. Mysql数据库简单常用语句

    Mysql数据库简单常用语句 1.命令连接数据库 mysql -h 127.0.0.1 -u root -p 2.新增用户 GRANT SELECT on 数据库.* to 用户名@登录主机 iden ...

  7. Oracle数据库简单常用语句

    简单常用语句: 登录超级用户 sqlplus / as sysdba; 登录普通用户 connect username/password; 显示当前用户名 show user; 查询所有用户名 sel ...

  8. 【数据库】 SQL 常用语句

    [数据库] SQL 常用语句 1.批量导入 INSERT INTO Table2(field1,field2,...) SELECT value1,value2,... FROMTable1 要求目标 ...

  9. 【数据库】 SQL 常用语句之系统语法

    [数据库] SQL 常用语句之系统语法 1. 获取取数据库服务器上所有数据库的名字 SELECT name FROM master.dbo.sysdatabases 2. 获取取数据库服务器上所有非系 ...

  10. Oracle数据库查看表空间sql语句

    转: Oracle数据库查看表空间sql语句 2018-09-03 15:49:51 兰海泽 阅读数 6212   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...

随机推荐

  1. Spring Boot图书管理系统项目实战-9.归还图书

    导航: pre:  8.续借图书 next:10.借还统计 只挑重点的讲,具体的请看项目源码. 1.项目源码 需要源码的朋友,请捐赠任意金额后留下邮箱发送:) 2.页面设计 2.1 bookRetur ...

  2. ORA-16019 和 ORA-16018 错误的处理方法

    一. ORA-16019 和 ORA-16018 错误产生描述 同事在修改归档目录,一不小心把参数设置错误了, 他设置的是log_archive_dest参数. 这个参数和默认log_archive_ ...

  3. Eclipse搭建Struts2项目

    最近在系统性的学习maven,碰到搭建struts2环境,特此记录一下. 1.创建maven工程 2.添加依赖 pom.xml文件内容如下 <project xmlns="http:/ ...

  4. 启动MySQL5.7服务无法启动或Table 'mysql.plugin' doesn't exist

    首先说一下我这个是mysql5.7.16免安装版,不过这个问题对于5.7版本应该都适用. 问题重现: 安装过程也说一下吧: 1.将下载的压缩文件解压到指定目录,     我的是:E:\program\ ...

  5. JavaCV解决deprecated pixel format used, make sure you did set range correctly 打印问题

    虽然知道这个是原因,但有时候即使换了格式也还是打印,简直让人抓狂,就是不想打印这个怎么办呢? 其实很简单,只需要加上一行代码(这行代码虽然是C语言风格的,但是它确实是加在Java代码里的): //只打 ...

  6. 【Android 逆向】【攻防世界】easy-dex

    这一题不easy,不知为何叫这个名字.... 1. apk 安装到手机,不知所云,各种亮瞎眼闪光 2. jadx 打开apk,一行java代码都没有,打开AndroidManifest看看 <? ...

  7. 解决 Order By 将字符串类型的数字 或 字符串中含数字 按数字排序问题

    oracle数据库,字段是varchar2类型即string,而其实存的是数字,这时候不加处理的order by的排序结果,肯定有问题解决办法:              (1)cast( 要排序的字 ...

  8. Mqtt开发笔记:Mqtt服务器搭建

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  9. 51从零开始用Rust编写nginx,江湖救急,TLS证书快过期了

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 负载均衡, 静态文件服务器,websocket代理,四层TCP/UDP转发,内网穿透等,会将实 ...

  10. Java // 使用二维数组打印 10 行杨辉三角

    1 // 使用二维数组打印 10 行杨辉三角 2 public static void main(String[] args) 3 { 4 //1.声明 并初始化二维数组 5 int[][]yangh ...