GP数据库分布键查询

GP数据库中的表一般都会设置分布键,如果没有设置的话,它一般默认是第一个字段,所以一般会建议使用一个记录会分布均匀的字段作为分布键使用,使表中的记录均匀的分布到每一个segment中。

GP数据库分布键查询方法:

select c.schema_name,
       c.table_name,
       c.table_comment as "中文表明",
       c.column_name as "分布键",
  from ( select d.nspname as schema_name,
                c.relname as table_name,
                obj_description(c.oid) as table_comment,
                a.attname as column_name
           from pg_class c
           left join pg_attribute a
             on a.attrelid = c.oid
           join pg_namespace d
             on d.oid = c.relnamespace
           left join pg_inherits f
             on c.oid = f.inhrelid
          where a.attnum > 0
            and f.inhrelid is null)c
  join (select a.attrnums[i.i] as a.attrnums,
               b.attname,
               a.localoid::regclass as localoid
          from gp_distribution_policy a,
               (select generate_series(1,10) as generate_series) i(i),
               pg_attribute b
        where a.attrnums[i.i] is not null
          and a.localoid = b.attrelid
          and a.attrnums[i.i] = b.attnum) t
    on c.column_name = t.attname
   and ((c.schema_name::text || ‘.‘::text) || a.table_name::text)::regclass::oid = t.localoid::oid
 order by c.schema_name,
          c.table_name,
          c.column_name
;
时间: 2024-08-28 12:02:54

GP数据库分布键查询的相关文章

GP数据库笔记—表结构查询,表占用空间查询

GP数据库中表结构查询的方法: select d.nspname ,obj_description(d.oid) ,c.relname ,obj_description(c.oid) ,a.attnum ,a.attname ,e.data_type ,col_description(c.oid,a.attum) ,e.is_nullable ,case where e.data_type ~  'character' then e.character_maximum_length|| '' w

gp数据库停止

greenplum是2(master)+7(segment)的集群规模 系统刚准备上线,是用来做统计数据库的,正在帮忙一个hadoop集群核对其数据的准确性,在这个greenplum库中入了清单数据 后检查分析是部分建表语句存在问题,没有指定字段做分布键,也没有指定其是随机分布,导致默认为第一个字段做为分布键导致数据倾斜. 发现数据库非常慢,几乎是不可用,检查greenplum的状态情况 1.检查greenplum数据库的状态 [email protected]:~> gpstate   201

ADO数据库访问类查询、属性扩展

1 数据库访问类查询 (1)查询一条 有参数:查询这条信息的主键: 有返回值:返回值是一个实体类: dr.read();执行一遍,读取这行信息并放进users类型中. ///返回users实体类类型 public users chayi(string name) { users u = null; com.CommandText = "select *from users where [email protected]"; com.Parameters.Clear(); com.Par

【SSH项目实战05】完成数据库的级联查询和分页

上一节我们完成了EasyUI菜单的实现.这一节我们主要来写一下CategoryServiceImpl实现类,完成数据库的级联查询.一般项目从后往前做,先做service(我们没有抽取Dao,最后再抽取),做完了再做上面层. 在写之前,先看一下数据库中的表的情况: drop database if exists shop; /*创建数据库,并设置编码*/ create database shop default character set utf8; use shop; /*删除管理员表*/ dr

MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法

在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用. 下面就分别给大家介绍.讲解一下三种数据库实现分页查询的方法. 一. MySQL 数据库分页查询 MySQL数据库实现分页比较简单,提供了LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有

SQL语句创建数据库以及一些查询练习

--创建 MyCompany数据库 use master execute sp_configure 'show advanced options',1 --开启权限 reconfigure execute sp_configure 'xp_cmdshell',1 reconfigure execute xp_cmdshell 'mkdir e:\作业数据库'--自动创建文件夹 execute sp_configure 'xp_cmdshell',0--关闭权限,先关 reconfigure ex

关系型数据库之Mysql查询及数据库管理(二)

在关系型数据库之Mysql编译安装及数据库基础(一)我们大致了解的数据库的基本应用了,下面我们来聊聊MySQL的家常吧,在实际生产工作中我需要了解自己再数据库领域应该选择哪条道?这是们走向数据库光明之路的前提,关于数据库发展方向有开发DBA和管理DBA,它们分别需要哪些技能呢: 开发DBA:数据库设计(E-R关系图).SQL开发.内置函数.存储过程(存储过程和存储函数).触发器.事件调查器(even scheduler) 管理DBA:安装.升级.备份.恢复.用户管理.权限管理.监控.分析.基准测

数据库 、 语句查询、函数

创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatabases where name='databaseName') drop database databaseName go Create DATABASE databasename on primary-- 默认就属于primary文件组,可省略 ( /*--数据文件的具体描述--*/ name='databasename_data',-- 主数据文件的逻辑名称 filename=''所存

SQL Server数据库的T-SQL查询语句

一.SQL简介 在进行数据管理时,使用SSMS进行数据维护有可视化.方便的优点,但是在批量维护或重复维护数据时,每次都需要使用SSMS不但不方便,而且容易出错.通过编写SQL语句来维护数据库便于解决重复或批量维护数据的难题. 1.SQL和T-SQL SQL是Structured Query Language的缩写,即结构化查询语言.SQL广泛地被采用说明了它的优势,它使全部用户,包括应用程序员.数据库管理员和终端用户受益匪浅. 1)非过程化语言 SQL是一个非过程化的语言,因为它一次处理一个记录