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. 【Unity3D】绘制物体表面三角形网格

    1 仅绘制三角形网格 ​ 1)创建游戏对象 ​ 创建一个空对象,重命名为 Grid,并在其下添加需要绘制网格的对象,如下: ​ 场景显示如下: ​ 2)添加脚本组件 ​ GridController. ...

  2. thinkphp集成webuploader实战

    介绍 最近用了下thinkphp搞自己的博客,期间用到了百度的webuploader上传图片.百度出来的参考质量一言难尽,写教程没有一点追求,千篇一律的复制粘贴,某些个作者自己都没搞清楚就发文,误人又 ...

  3. win32 - DIB 与 DDB

    设备相关位图(DDB): DDB不包含颜色值,因为每个设备可以具有自己的一组颜色,所以为一个设备创建的DDB可能无法在其他设备上很好地显示. DDB通常被称为兼容位图,并且它通常比DIB具有更好的GD ...

  4. js之以面向对象的形式书写贪吃蛇

    此代码存在一定的小bug,当蛇出边界之后存在一定的小问题 分析贪吃蛇功能需求: 1.食物 (1)每次生成一个,位置随意但不可超出规定范围 (2)每次蛇吃到食物之后,前一个食物消失同时新的食物又生成 ( ...

  5. 【Azure 存储服务】Azure Blob Storage SDK 升级失败,遇见 Unsatisfied Dependency Exception 和 Unexpected Length Exception

    问题描述 在升级Java Azure Blob Storage SDK的过程中,先后遇见了 UnsatisfiedDependencyException 和 UnexpectedLengthExcep ...

  6. 【Filament】立方体贴图(6张图)

    1 前言 ​ 本文通过一个立方体贴图的例子,讲解三维纹理贴图(子网格贴图)的应用,案例中使用 6 张不同的图片给立方体贴图,图片如下. ​ 读者如果对 Filament 不太熟悉,请回顾以下内容. F ...

  7. 十一: 数据库缓冲池(buffer pool)

    数据库缓冲池(buffer pool) InnoDB 存储引擎是以页为单位来管理存储空间的,我们进行的增删改查操作其实本质上都是在访问页 面(包括读页面.写页面.创建新页面等操作).而磁盘 I/O 需 ...

  8. Java 对属性赋值的位置 执行的先后顺序

    1 package com.bytezreo.block; 2 3 /** 4 * 5 * @Description 对属性赋值的位置: 6 * @author Bytezero·zhenglei! ...

  9. Learning by teaching --- 费曼学习法

    世界上存在成千上万种学习法,如果上天只让我掌握一种,那一定就是"费曼学习法". 介绍 费曼学习法是由诺贝尔物理学奖获得者理查德·费曼提出的一种学习方法,其核心思想是将所学内容用自己 ...

  10. postgreSql最佳配置详解(connection 申请、回收策略)

    一.引子 合理配置一个应用的数据库参数,使其运行良好,这很重要.本文以某务中台的生产环境为例,从Apollo上拔下来一套配置,分析是否合理. 二.MybatisPlus配置 由于我们使用Apollo配 ...