postgresql - 用于查找和创建模式缺失索引的脚本
问题描述
我使用下面的脚本来查找丢失的索引,但是对其进行了任何修改以查找和创建索引创建语句或查找我们可以索引的列?
数据库:Postgres
SELECT
relname AS TableName
,seq_scan-idx_scan AS TotalSeqScan
,CASE WHEN seq_scan-idx_scan > 0
THEN 'Missing Index Found'
ELSE 'Missing Index Not Found'
END AS MissingIndex
,pg_size_pretty(pg_relation_size(relname::regclass)) AS TableSize
,idx_scan AS TotalIndexScan
FROM pg_stat_all_tables
WHERE schemaname='public'
AND pg_relation_size(relname::regclass)>100000
ORDER BY 2 DESC;
解决方案
我认为该查询不是很有用。
更好的是
SELECT relname,
seq_scan,
seq_tup_read / seq_scan AS tup_per_scan
FROM pg_stat_user_tables
WHERE seq_scan > 0;
如果第二列和第三列都很大,则缺少索引。
推荐阅读
- asp.net-core - .Net Core 2.2 应用程序在 Linux AWS 实例上的每次调用都返回 404
- python-3.x - 如何将 tkinter filedialoge.askdirectory() 路径链接到 Python 3.8 中的列表框
- javascript - 如何将单元格内容更改为值并返回制表符
- node.js - CodeDeploy PM2 多应用停止错误
- python - 我如何让scrapy在段落周围没有css标签的旧网页上查找和获取特定单词
- reactjs - 我如何从 http 重定向到 https express.js
- deep-learning - 在这种情况下,简单 GAN 是否与条件 GAN 一样工作
- php - 如何建立非安全连接
- python - 在 Flask SQLAlchemy 中修改 Sqlite 数据库结构
- jenkins - 停止后如何在特定端口上启动 Jenkins?