postgresql索引使用情况及坏索引处理
1、postgresql中索引系统视图pg_stat_user_indexes
TEST=# \d+ sys_stat_user_indexes
View "SYS_CATALOG.sys_stat_user_indexes"
Column | Type | Modifiers | Storage | Description
---------------+--------+-----------+---------+-------------
relid | OID | | plain |
indexrelid | OID | | plain |
schemaname | NAME | | plain |
relname | NAME | | plain |
indexrelname | NAME | | plain |
idx_scan | BIGINT | | plain |
idx_tup_read | BIGINT | | plain |
idx_tup_fetch | BIGINT | | plain |
View definition:
SELECT sys_stat_all_indexes.relid,
sys_stat_all_indexes.indexrelid,
sys_stat_all_indexes.schemaname,
sys_stat_all_indexes.relname,
sys_stat_all_indexes.indexrelname,
sys_stat_all_indexes.idx_scan,
sys_stat_all_indexes.idx_tup_read,
sys_stat_all_indexes.idx_tup_fetch
FROM sys_stat_all_indexes
WHERE (sys_stat_all_indexes.schemaname <> ALL (ARRAY['SYS_CATALOG'::NAME, 'INFORMATION_SCHEMA'::NAME])) AND sys_stat_all_indexes.schemaname !~ '^SYS_TOAST'::TEXT;
2、pg_stat_user_indexes中column含义
test=# select *from pg_stat_user_indexes;
-[ RECORD 1 ]-+----------
relid | 16447 #相关表的oid
indexrelid | 16450 #索引的oid
schemaname | public #模式名
relname | t3 #表名
indexrelname | t3_id_idx #索引名
idx_scan | 0 #通过索引扫描的次数,如果该值很小,说明该索引很少被用到,可以考虑删除
idx_tup_read | 0 #通过任意索引方法返回的索引行数
idx_tup_fetch | 0 #通过索引方法返回的数据行数
3、查看所有表的索引使用情况
select relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch from sys_stat_user_indexes order by idx_scan asc, idx_tup_read asc, idx_tup_fetch asc;
4、查看某张表索引使用情况
select relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch from sys_stat_user_indexes where relname = 't1' order by idx_scan asc, idx_tup_read asc, idx_tup_read asc, idx_tup_fetch asc;
5、修复损坏索引
通过pg_dump验证到底是索引块还是表块损坏,因为pg_dump不使用索引,直接从表中获取数据。
验证故障现象
通过全表访问数据
set enable_indexscan =‘off’;
explain analzye select * from 表对象
通过索引访问数据
explain analzye select * from 表对象
a、rebuild index --该方式会锁表,DML和select都会被锁,需要根据实际业务申请维护时间
b、rebuild index concurrently --postgresl12才的功能
c、create index concurrently --并发创建索引,会使表的插入更新操作变慢,但不会锁表(推荐使用该方法)
postgresql索引使用情况及坏索引处理的更多相关文章
- Oracle监控用户索引使用情况,删除无用索引
监控当前业务用户索引 一段时间后查询从未被使用的索引,删除无用索引 停止监控索引 1. 监控当前用户所有索引 得到监控所有索引的语句: select 'alter index ' || index_n ...
- oracle数据库什么情况下创建索引比较好
索引就好象一本字典的目录.凭借字典的目录,我们可以非常迅速的找到我们所需要的条目.数据库也是如此.凭借Oracle数据库的索引,相关语句可以迅速的定位记录的位置,而不必去定位整个表. 虽 然说,在表中 ...
- oracle里要查看一条sql的执行情况,有没有走到索引,怎么看?索引不能提高效率?
index scan 索引扫描 full table scan是全表扫描 直接explain plan for 还有个set autotrace什么 索引一定能提高执行效率吗? 索引不能提高效率的情况 ...
- sqlserver查看索引使用情况以及建立丢失的索引
--查看表的索引使用情况SELECT TOP 1000o.name AS 表名, i.name AS 索引名, i.index_id AS 索引id, dm_ius.user_seeks AS 搜索次 ...
- 如何获得SQL Server索引使用情况
原文:如何获得SQL Server索引使用情况 原文出自: http://www.mssqltips.com/sqlservertip/1239/how-to-get-index-usage-info ...
- MongoDB数据库索引构建情况分析
前面的话 本文将详细介绍MongoDB数据库索引构建情况分析 概述 创建索引可以加快索引相关的查询,但是会增加磁盘空间的消耗,降低写入性能.这时,就需要评判当前索引的构建情况是否合理.有4种方法可以使 ...
- mysql如何查看索引使用情况以及优化 - guols0612
mysql中支持hash和btree索引.innodb和myisam只支持btree索引,而memory和heap存储引擎可以支持hash和btree索引 我们可以通过下面语句查询当前索引使用情况: ...
- SqlServer之like、charindex、patindex 在有无索引的情况下分析
1.环境介绍 测试环境 SQL2005 测试数据 200W条 2.环境准备 2.1建表 CREATE TABLE [dbo].[Depratments]( [Dep_id] [int] ...
- SQL Server 索引维护(1)——如何获取索引使用情况
前言: 在前面一文中,已经提到了三类常见的索引问题,那么问题来了,当系统出现这些问题时,该如何应对? 简单而言,需要分析现有系统的行为,然后针对性地对索引进行处理: 对于索引不足的情况:检查缺少索引的 ...
- 索引构建情况分析、mongoDB安全(四)
索引好处:加快索引相关的查询 坏处:增加磁盘空间消耗,降低写入性能 评判当前索引构建情况: 1. mongostat工具介绍 2. profile集合介绍 3. 日志介绍 ...
随机推荐
- k8s篇-k8s集群架构及组件详解【史上最详细】
O kubernetes简介 k8s是什么 k8s是一个可移植的.可扩展的开源平台,用于管理容器化的工作负载和服务,可以促进声明式配置和自动化. k8s能做什么 1)服务发现和负载均衡 Kuberne ...
- C++四舍五入并且保留7为小数
问题描述给定圆的半径r,求圆的面积.输入格式输入包含一个整数r,表示圆的半径.输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积.说明:在本题中,输入是一个整数,但是输出是一个实数 ...
- 3、数组、集合、Lambda、Stream与Optional类
一.数组: 数组保存在JVM堆内存中 1.数组的创建: (1).一维数组创建方式一: //一维数组方式一 Integer[] array01 = {1,2,3}; System.out.println ...
- 希腊字母表及latex代码
希腊字母表及latex代码 字母大写 字母小写 英文名称 latex大写代码 latex小写代码 \(\Alpha\) \(\alpha\) alpha \Alpha \alpha \(\Beta\) ...
- NC14501 大吉大利,晚上吃鸡!
题目链接 题目 题目描述 最近<绝地求生:大逃杀>风靡全球,皮皮和毛毛也迷上了这款游戏,他们经常组队玩这款游戏. 在游戏中,皮皮和毛毛最喜欢做的事情就是堵桥,每每有一个好时机都能收到不少的 ...
- VMware Workstation Pro 16安装CentOS7超详细图文步骤
安装的需要 VMware官方网站安装VMware Workstation Pro 16: https://download3.vmware.com/software/wkst/file/VMware- ...
- Redis 数据结构-双向链表
Redis 数据结构-双向链表 最是人间留不住,朱颜辞镜花辞树. 1.简介 Redis 之所以快主要得益于它的数据结构.操作内存数据库.单线程和多路 I/O 复用模型,进一步窥探下它常见的五种基本数据 ...
- Hadoop生态元数据管理平台——Atlas2.3.0发布!
大家好,我是独孤风. 今天我们来聊一下另一个元数据管理平台Apache Atlas.Atlas其实有一些年头了,是在2015年的时候就开源. 相对于Datahub来说,Atlas显得有一些" ...
- LIS求解(包括优化)
首先,让我来看看LIS问题 Description 一个数的序列 bi,当 b1 < b2 < ... < bS 的时候,我们称这个序列是上升的.对于给定的一个序列(a1,a2,.. ...
- DNS 是如何影响你冲浪速度的?
本文详细介绍了 DNS 相关知识,包括 DNS 工作原理.如何提升域名解析速度.以及 DNS 记录与报文等内容. 1. 域名与域名服务器 在日常上网过程中,出于好记的原因,人们更喜欢在浏览器中输入网站 ...