返回顶部
首页 > 资讯 > 数据库 >PostgreSQL 批量处理index sql
  • 476
分享到

PostgreSQL 批量处理index sql

PostgreSQL批量处理indexsql 2018-02-17 04:02:25 476人浏览 无得
摘要

  --查询索引详细信息 SELECT t.tablename, indexname, c.reltuples AS num_rows, pg_size_pretty(pg_relation_size(quote

PostgreSQL 批量处理index sql

 


--查询索引详细信息
SELECT
  t.tablename,
  indexname,
  c.reltuples AS num_rows,
  pg_size_pretty(pg_relation_size(quote_ident(t.tablename)::text)) AS table_size,
  pg_size_pretty(pg_relation_size(quote_ident(indexrelname)::text)) AS index_size,
  CASE WHEN indisunique THEN "Y"
    ELSE "N"
  END AS UNIQUE,
  idx_scan AS number_of_scans,
  idx_tup_read AS tuples_read,
  idx_tup_fetch AS tuples_fetched
FROM pg_tables t
  LEFT OUTER JOIN pg_class c ON t.tablename=c.relname
  LEFT OUTER JOIN
    ( SELECT c.relname AS ctablename, ipg.relname AS indexname, x.indnatts AS number_of_columns, idx_scan, idx_tup_read, idx_tup_fetch, indexrelname, indisunique FROM pg_index x
      JOIN pg_class c ON c.oid = x.indrelid
      JOIN pg_class ipg ON ipg.oid = x.indexrelid
      JOIN pg_stat_all_indexes psai ON x.indexrelid = psai.indexrelid )
    AS foo
  ON t.tablename = foo.ctablename
WHERE t.schemaname="public"
ORDER BY 1,2;


--查询整库索引大小并排序
SELECT c.relname,c2.relname, c2.relpages*8/1024 as size_MB, indexdef||";" as index_def
FROM pg_class c, pg_class c2, pg_index i,pg_indexes iv 
WHERE  c.oid = i.indrelid AND c2.oid = i.indexrelid and c2.relname=iv.indexname ORDER BY c2.relpages*8 desc;

--查看索引是valid 还是ready
说明:
The indisvalid and indisready are only meaningful for indexes created using concurrently ---while they are being created or if creation fails. 
 Once they are successfully created those columns have no meaning any more .
 indisvalid indicates whether the index will be used when querying. indisready indicates whether it gets updated on table modifications. 
 You can set them explicitely if you have the correct access rights

SELECT
    trel.relname AS table_name,
    irel.relname AS index_name,
    string_agg(a.attname, ", " ORDER BY c.ordinality) AS columns
FROM pg_index AS i
         JOIN pg_class AS trel ON trel.oid = i.indrelid
         JOIN pg_class AS irel ON irel.oid = i.indexrelid
         JOIN pg_attribute AS a ON trel.oid = a.attrelid
         JOIN LATERAL unnest(i.indkey)
    WITH ORDINALITY AS c(colnum, ordinality)
              ON a.attnum = c.colnum
WHERE i.indisvalid -- WHERE not i.indisvalid
GROUP BY i, trel.relname, irel.relname;


--生成删除主键sql
select "alter table "||t.tablename||" drop CONSTRAINT "||i.indexname||";" from  pg_indexes i ,pg_tables t 
where i.schemaname=t.schemaname and i.tablename=t.tablename  and i.indexname like "%pk%";

--生成索引删除语句
select "drop index  " ||i.indexname||";"  from pg_indexes i ,pg_tables t where i.schemaname=t.schemaname and i.tablename=t.tablename;

--生成索引创建语句
select  indexdef||";" from pg_indexes i ,pg_tables t where i.schemaname=t.schemaname and i.tablename=t.tablename;

--生成添加主键语句
select "alter table " ||t.tablename||"   add primary key using index "||i.indexname||";" from  pg_indexes i ,pg_tables t 
where i.schemaname=t.schemaname and i.tablename=t.tablename  and i.indexname like "%pk%";


--查询gin索引
 select * from pg_indexes where indexdef like "%gin%";

--生成删除外键
SELECT "alter table "|| r.conrelid::reGClass ||" drop constraint " ||conname ||";"
FROM pg_catalog.pg_constraint r
WHERE r.contype = "f" ORDER BY 1;


--生成创建外键的脚本
SELECT "alter table " || r.conrelid::regclass  || " add " ||pg_catalog.pg_get_constraintdef(r.oid, true) ||";"
FROM pg_catalog.pg_constraint r
WHERE r.contype = "f" ORDER BY 1;


--生产失效trigger,生效trigger 脚本
select "alter table " ||t3.nspname||"."||t2.relname || " DISABLE TRIGGER " || tgname ||";" from pg_trigger t1,pg_class t2,pg_namespace t3 where t1.tgrelid=t2.oid and t2.relnamespace=t3.oid ;
	
select "alter table " ||t3.nspname||"."||t2.relname || " ENABLE TRIGGER " || tgname ||";" from pg_trigger t1,pg_class t2,pg_namespace t3 where t1.tgrelid=t2.oid and t2.relnamespace=t3.oid ;
	
--查询trigger状态
select t2.relname,tgname,tgenabled from pg_trigger t1,pg_class t2 where t1.tgrelid=t2.oid ;

 

您可能感兴趣的文档:

--结束END--

本文标题: PostgreSQL 批量处理index sql

本文链接: https://lsjlt.com/news/7269.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PostgreSQL 批量处理index sql
      --查询索引详细信息 SELECT t.tablename, indexname, c.reltuples AS num_rows, pg_size_pretty(pg_relation_size(quote...
    99+
    2018-02-17
    PostgreSQL 批量处理index sql
  • 如何使用PL/SQL处理批量数据
    在PL/SQL中处理批量数据通常使用游标和循环来实现。以下是一个简单的示例: 使用游标来访问需要处理的数据集合: DECLARE...
    99+
    2024-05-07
    PL/SQL
  • mybatis postgresql 批量删除
    一、需求介绍  前端是一个列表页面,列表可以进行复选框的选择,后台进行关联表数据的删除。 二、框架介绍  springboot+mybatis 数据库用的postgresql 三、具体代码(前端js) 前端涉及到的代码 //判断选...
    99+
    2020-03-10
    mybatis postgresql 批量删除
  • 如何自动生成批量执行SQL脚本的批处理
    这篇文章主要介绍如何自动生成批量执行SQL脚本的批处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!场景: DBA那边给我导出了所有的存储、函数等等对象的创建脚本,有上千个文件. 现在需要将这些对象创建脚本导入到另外...
    99+
    2023-06-08
  • EntityFrameworkCore批处理SQL语句
    在Entity Framework Core (EF Core)有许多新的功能,最令人期待的功能之一就是批处理语句。那么批处理语句是什么呢?批处理语句意味着它不会为每个插入/更新/删...
    99+
    2024-04-02
  • SQL Server使用T-SQL语句批处理
    批处理简介 批处理是作为一个逻辑单元的T-SQL语句。如果一条语句不能通过语法分析,那么不会运行任何语句。如果一条语句在运行时失败,那么产生错误的语句之前的语句都已经运行了。 为了将...
    99+
    2024-04-02
  • 怎么理解PostgreSQL的PG Index Properties
    本篇内容介绍了“怎么理解PostgreSQL的PG Index Properties”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家...
    99+
    2024-04-02
  • 使用python批量处理excel
    看看结果: ...
    99+
    2023-01-31
    批量 python excel
  • sql批量更新的原理是什么
    批量更新是指一次性更新多条记录,而不是逐条更新。在SQL中,可以使用UPDATE语句来实现批量更新操作。其原理是将一组更新操作合并为...
    99+
    2024-03-02
    sql
  • SQL Server怎么使用T-SQL语句批处理
    本篇内容介绍了“SQL Server怎么使用T-SQL语句批处理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!批处理简介批处理是作...
    99+
    2023-06-30
  • 如何通过批处理调用SQL
    这篇文章将为大家详细讲解有关如何通过批处理调用SQL,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。osql /U alma /P /i stores.bat (stores.bat中包含updat ...
    99+
    2023-06-08
  • oracle 游标批量处理数据
    declare  --开始时间  v_date_start date:= to_date('2015-05-28 00:00:00', 'yyyy-mm-dd hh34:mi:ss');...
    99+
    2024-04-02
  • Hibernate如何实现批量处理
    这篇文章给大家分享的是有关Hibernate如何实现批量处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Hibernate批量处理其实从性能上考虑,它是很不可取的,浪费了很大的内存。从它的机制上讲,Hibern...
    99+
    2023-06-17
  • ps如何批量处理图片
    本文小编为大家详细介绍“ps如何批量处理图片”,内容详细,步骤清晰,细节处理妥当,希望这篇“ps如何批量处理图片”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。ps动作批量处理图片:首先进入ps软件,然后点击窗口,...
    99+
    2023-07-02
  • 批处理变量怎么应用
    小编给大家分享一下批处理变量怎么应用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体应用:1、获取变量子字符串:echo %date:~0,4%%da...
    99+
    2023-06-09
  • SQL学习之T-SQL编程之标识符、变量、批处理与运算符
    1、标识符:(1)定义:就像每个人都要有个名字一样,在SQL Server中,每一项对象也都要有一个作为标识用的名称,这就是标识符。例如数据库名称、数据表名称、字段名称等等,这些名称统称为标识符。(2)命名...
    99+
    2024-04-02
  • PostgreSQL中怎么批量导入数据
    这篇文章将为大家详细讲解有关PostgreSQL中怎么批量导入数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。概述考虑PostgreSQL数据库批量导入数...
    99+
    2024-04-02
  • postgresql 中怎么批量更新记录
    本篇文章给大家分享的是有关postgresql 中怎么批量更新记录,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 代码如下:CREA...
    99+
    2024-04-02
  • SQL批量插入数据
    MS SQL Server数据库批量插入数据的sql语句总结:第一种:insert into tb_NameList(Name,InsertDate,UpdateDate)values('aa',GETDA...
    99+
    2024-04-02
  • Python使用openpyxl批量处理数据
       前言,因为经常使用Excel处理数据,像表格内的筛选,表格间数据的复制,都是简单重复的操作,十分枯燥无聊,为了提高效率,主要是自己懒,特地研究openpyxl,发现能够简化个人劳动量,自己也...
    99+
    2022-06-02
    Python批量处理 Python openpyxl运用
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作