Greenplum实用技巧
一、通过gp_segment_id查看数据倾斜
gp_segment_id是表中的隐藏列,用来标记该行属于哪个segment节点。因此可以基于该隐藏列进行分组查询,获取每个segment的记录数,从而判断表数据的分布是否均匀或有倾斜。
qb=#select gp_segment_id, count(*) from call_center group by 1 order by 1;gp_segment_id | count
---------------+-------0 | 41 | 22 | 63 | 44 | 55 | 3
(6 rows)
二、查看segment配置和状态
gp_segment_configuration是一张系统表,它维护包括master、standby在内的所有节点信息。是DBA了解集群最直观的方式。
qb=# select * from gp_segment_configuration order by 1;dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir
------+---------+------+----------------+------+--------+-------+----------+---------+---------------------------------------1 | -1 | p | p | n | u | 5432 | n208 | n208 | /var/lib/qb-data/master/qbseg-12 | 0 | p | p | n | u | 40000 | n208 | n208 | /var/lib/qb-data/primary/qbseg03 | 1 | p | p | n | u | 40001 | n208 | n208 | /var/lib/qb-data/primary/qbseg14 | 2 | p | p | n | u | 40000 | n209 | n209 | /var/lib/qb-data/primary/qbseg25 | 3 | p | p | n | u | 40001 | n209 | n209 | /var/lib/qb-data/primary/qbseg36 | 4 | p | p | n | u | 40000 | n210 | n210 | /var/lib/qb-data/primary/qbseg47 | 5 | p | p | n | u | 40001 | n210 | n210 | /var/lib/qb-data/primary/qbseg5
三、查看表的大小
查看表的大小有两种方式,一种是\d+,一种是pg_size_pretty。
如果是在一个schema下直接执行\d+,可以一次性看到所有表的size,如下
qb=# \d+List of relationsSchema | Name | Type | Owner | Storage | Size | Description
--------+------------------------------+-------------------+----------+-----------+----------+-------------tpcds | call_center | table | qb| ao_column | 1039 kB | tpcds | catalog_page | table | qb| ao_column | 2575 kB | tpcds | catalog_returns | partitioned table | qb| ao_column | 0 bytes | tpcds | catalog_returns_1_prt_10 | table | qb| ao_column | 1092 kB | tpcds | catalog_returns_1_prt_100 | table | qb| ao_column | 2197 kB | tpcds | catalog_returns_1_prt_101 | table | qb| ao_column | 2216 kB | tpcds | catalog_returns_1_prt_102 | table | qb| ao_column | 2192 kB | tpcds | catalog_returns_1_prt_103 | table | qb| ao_column | 2190 kB | tpcds | catalog_returns_1_prt_104 | table | qb| ao_column | 2175 kB | tpcds | catalog_returns_1_prt_105 | table | qb| ao_column | 2174 kB | tpcds | catalog_returns_1_prt_106 | table | qb| ao_column | 2136 kB | tpcds | catalog_returns_1_prt_107 | table | qb| ao_column | 2119 kB | tpcds | catalog_returns_1_prt_108 | table | qb| ao_column | 2091 kB | tpcds | catalog_returns_1_prt_109 | table | qb| ao_column | 2072 kB |
如果想查看某一张表的size,可以使用pg_size_pretty,如下
qb=# select pg_size_pretty(pg_relation_size('catalog_returns_1_prt_158'));pg_size_pretty
----------------929 kB
(1 row)
除此之外,还有以下一系列函数可以查看数据库、表占用空间大小。
| 函数 | 说明 |
|---|---|
| pg_database_size(‘znids_dc’) | 数据库大小,不计算索引 |
| pg_total_size(‘znids_dc’) | 数据库大小,包含索引 |
| pg_indexes_size(‘alert_log_sm’) | 表中索引大小 |
| pg_relation_size(‘alert_log_sm’) | 表大小,不包括索引 |
| pg_total_relation_size(‘alert_log_sm’) | 表大小,包括索引 |
| pg_tablespace_size(‘alert_log_sm’) | 表空间大小 |
四、explain相关用法
如果是仅查看执行计划,可直接使用explain select xxx。
如果是希望查看执行计划,并输出语句执行耗时,可使用explain analyze select xxx。
qb=# explain analyze select cc_call_center_sk,count(*) from call_center group by 1;QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------Gather Motion 6:1 (slice1; segments: 6) (cost=0.00..431.00 rows=24 width=12) (actual time=3.223..4.193 rows=24 loops=1)-> GroupAggregate (cost=0.00..431.00 rows=4 width=12) (actual time=0.519..0.528 rows=6 loops=1)Group Key: cc_call_center_sk-> Sort (cost=0.00..431.00 rows=4 width=4) (actual time=0.504..0.509 rows=6 loops=1)Sort Key: cc_call_center_skSort Method: quicksort Memory: 150kBExecutor Memory: 152kB Segments: 6 Max: 26kB (segment 2)-> Seq Scan on call_center (cost=0.00..431.00 rows=4 width=4) (actual time=0.459..0.470 rows=6 loops=1)Optimizer: ORCA Optimizer (QBORCA)Planning Time: 15.128 ms(slice0) Executor memory: 27K bytes.(slice1) Executor memory: 159K bytes avg x 6 workers, 159K bytes max (seg0). Work_mem: 26K bytes max.Memory used: 128000kBExecution Time: 5.362 ms
(14 rows)
五、使用show显示某个参数的值
可以在命令行使用show xxx来显示某个参数的值。如,
qb=# show max_connections ;max_connections
-----------------250
(1 row)
六、通过gpconfig修改参数
通过gpconfig配置Master和所有Segment的postgresql.conf中参数。
查询:gpconfig -s
修改:gpconfig -c
比如,
gpconfig -c work_mem -v 120MB –masteronly
修改master上的work_mem =120MB
gpconfig -c max_connections -v 100 -m 10
修改Master上max_connections=10,Segment上修改成100
gpconfig -r default_statistics_target
注释参数,使用缺省参数
gpconfig –l
列出所有的参数
gpconfig -s max_connections
显示某个参数
最大连接数:show max_connections;
最大事务数:show max_prepared_transactions;
相关文章:
Greenplum实用技巧
一、通过gp_segment_id查看数据倾斜 gp_segment_id是表中的隐藏列,用来标记该行属于哪个segment节点。因此可以基于该隐藏列进行分组查询,获取每个segment的记录数,从而判断表数据的分布是否均匀或有倾斜。 qb#select gp_segment_id, count…...
以物联网为核心的智慧工地云平台:聚集智能技术,实现建筑工地智慧管理
智慧工地云平台源码,智慧工地项目监管平台源码,智慧工地可视化数据大屏源码 智慧工地云平台是将云计算、大数据、物联网、移动技术和智能设备等信息化技术手段,聚集在建筑工地施工管理现场,围绕人员、机械、物料、环境等关键要素&…...
Java项目-苍穹外卖-Day05-Redis技术应用
1.店铺营业状态设置 需求分析和设计 左上角要求是有回显的 所以至少两个接口 1.查询营业状态接口(分为了管理端和用户端) 2.修改营业状态接口 因为管理端和用户端路径不同,所以现在是至少三个接口的 可以发现如果存到表里除了id只有一个…...
linux安装jmeter
linux安装jmeter 部署java1.8 下载jmeter安装包:官网、网盘5.6.2版本 # 解压 rootiZbp1at7nu2rpq4xn4zaf1Z:/opt/jmeter# sudo tar -xzf apache-jmeter-5.6.2.tgz # 加入环境变量 rootiZbp1at7nu2rpq4xn4zaf1Z:/opt/jmeter/apache-jmeter-5.6.2# export JMETER/op…...
【笔记】泛型以及如何绕过泛型定义
泛型定义以及其带来的好处 泛型使类型(类和接口)能够在定义类、接口和方法时成为参数。与方法声明中使用的更熟悉的形式参数非常相似,类型参数为您提供了一种通过不同输入重复使用相同代码的方法。区别在于形式参数的输入是值,而…...
JAVA JNA 调用C接口的三种方式
文章目录 1. 准备一个共享库文件2. JNA姿势1—继承Library接口3. JNA姿势2—直接NativeLibrary.getInstance3. JNA姿势3—Native方法 1. 准备一个共享库文件 test.c #include <stdio.h> int test(char *input){printf("input:%s\n",input);return 0; }libtes…...
StarRocks入门到熟悉
1、部署 1.1、注意事项 需要根据业务需求设计严谨的集群架构,一般来说,需要注意以下几项: 1.1.1、FE数量及高可用 FE的Follower要求为奇数个,且并不建议部署太多,通常我们推荐部署1个或3个Follower。在三个Followe…...
华为AR路由器 典型配置案例——以太网交换
目录 Eth-Trunk 例:配置三层链路聚合 组网需求 操作步骤 检查配置结果 配置脚本 VLAN 举例:配置基于接口划分VLAN,实现同一VLAN内的互通(同设备) 组网需求 操作步骤 检查配置结果 配置脚本 举例ÿ…...
DP读书:鲲鹏处理器 架构与编程(十三)操作系统内核与云基础软件
操作系统内核与云基础软件 鲲鹏软件构成硬件特定软件 鲲鹏软件构成硬件特定软件1. Boot Loader2. SBSA 与 SBBR3. UEFI4. ACPI 操作系统内核Linux系统调用Linux进程调度Linux内存管理Linux虚拟文件系统Linux网络子系统Linux进程间通信Linux可加载内核模块Linux设备驱动程序Linu…...
Vue2项目练手——通用后台管理项目第一节
Vue2项目练手——通用后台管理项目 知识补充yarn和npm区别npm的缺点:yarn的优点 npm查看镜像和设置镜像 项目介绍项目的技术栈 项目搭建文件目录 创建路由,引入element-uirouter/index.jsmain.jspages/Users.vuepages/Main.vuepages/Home.vuepages/Login…...
「Vue|网页开发|前端开发」02 从单页面到多页面网站:使用路由实现网站多个页面的展示和跳转
本文主要介绍如何使用路由控制来实现将一个单页面网站扩展成多页面网站,包括页面扩展的逻辑,vue的官方路由vue-router的基本用法以及扩展用法 文章目录 本系列前文传送门一、场景说明二、基本的页面扩展页面扩展是在扩什么创建新页面的代码,…...
【Nginx20】Nginx学习:FastCGI模块(二)缓存配置
Nginx学习:FastCGI模块(二)缓存配置 通过上篇文章的学习,普通的 PHP 与 Nginx 的连接就已经没啥大问题了。一般的网站直接那套配置就够了,这也是 Nginx 非常友好的一面。很多在默认的配置文件中注释掉的内容࿰…...
苹果支付外包开发流程
苹果支付的实现流程主要涉及集成苹果的支付系统——Apple Pay,以及在你的应用中处理支付交易。以下是一个简要的实现流程概述,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.开发者账号…...
银河麒麟V10(Tercel)服务器版安装 Docker
一、服务器环境 ## 查看系统版本,确认版本 cat /etc/kylin-release Kylin Linux Advanced Server release V10 (Tercel)## 操作系统 uname -p aarch64## 内核版本(≥ 3.10) uname -r 4.19.90-21.2.ky10.aarch64## iptables 版本(…...
web、HTTP协议
目录 一、Web基础 1.1 HTML概述 1.1.1 HTML的文件结构 1.2 HTML中的部分基本标签 1.3 URI 和 URL 二.HTTP协议 2.1.HTTP概念 2.2.HTTP协议版本 2.3.HTTP请求方法 2.4.HTTP请求访问的完整过程 2.5.HTTP状态码 2.6.HTTP请求报文和响应报文 2.7.HTTP连接优化 三.HTT…...
达梦SQL书写注意事项
模糊查询 模糊查询like后面的字段要求用单引号引用,不能使用双引号 select * from user where name like %小组 分组查询 select查询的列字段必须在分组中的字段存在 正确: select name,age from user group by name,age 错误: select * f…...
博途1200脉冲输出控制速度轴(轴工艺对象基本配置)
这里的1200脉冲轴,主要用来完成线缆包材绕包时的重叠率控制。关于重叠率的具体概念,这里不再阐述,大家可以看下面的文章链接, 重叠率控制 重叠率控制(算法详细介绍含SCL和梯形图源代码)_RXXW_Dor的博客-CSDN博客产品包装和线缆保护材料的包覆都需要进行材料包装重叠率的控…...
微信小程序 通过setData 给两个变量设置同一个数组时,为什么修改一个变量,另一个会也被修改?
在微信小程序中,使用 setData 方法更新数据时,如果给两个变量设置同一个数组,修改其中一个变量的值会导致另一个变量也被修改的原因是,数组是引用类型的数据,在内存中的存储方式是按引用地址存储。 当你将一个数组赋值…...
保障Web安全:构建可靠的网络防御体系
在当今数字化时代,Web安全已成为互联网世界中至关重要的议题。随着网络攻击手段的不断演进和网络犯罪的增加,保护用户数据和确保系统安全性已成为任何Web应用程序的首要任务。本文将深入探讨Web安全的重要性以及构建可靠的网络防御体系的关键要素。我们将…...
LeetCode--HOT100题(44)
目录 题目描述:230. 二叉搜索树中第K小的元素(中等)题目接口解题思路代码 PS: 题目描述:230. 二叉搜索树中第K小的元素(中等) 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你…...
GD32F450VK移植RT-Thread时如何避免SRAM分区导致的HardFault(附解决方案)
GD32F450VK移植RT-Thread的SRAM分区陷阱与实战解决方案 在嵌入式开发领域,GD32F4系列微控制器凭借其出色的性价比和丰富的外设资源,正逐渐成为工业控制、物联网终端等场景的热门选择。然而,当开发者尝试将RT-Thread实时操作系统移植到GD32F4…...
Llama-3.2V-11B-cot实操手册:构建带反馈机制的迭代式视觉推理Agent
Llama-3.2V-11B-cot实操手册:构建带反馈机制的迭代式视觉推理Agent 你有没有遇到过这种情况?给AI看一张复杂的图表或流程图,它要么答非所问,要么只能给出一个笼统的、没有逻辑链条的答案。你心里想:“它到底是怎么得出…...
使用Java实现数据的生产和消费
【Kafka】Java实现数据的生产和消费 Kafka介绍 Kafka 是由 LinkedIn 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 Kafka术语 …...
告别境外断网:Nrfr让全球网络无缝连接——免Root跨国通信解决方案
告别境外断网:Nrfr让全球网络无缝连接——免Root跨国通信解决方案 【免费下载链接】Nrfr 🌍 免 Root 的 SIM 卡国家码修改工具 | 解决国际漫游时的兼容性问题,帮助使用海外 SIM 卡获得更好的本地化体验,解锁运营商限制,…...
评一个典型的“数学可视化 + 计算机图形学入门”的优秀案例(C++精灵库3D案例)
这份代码和视频展示了一个非常典型的“数学可视化 计算机图形学入门”的优秀案例。它不仅仅是一段能运行的代码,更是一个将抽象数学公式转化为直观视觉艺术的教学演示。 以下是对该程序及视频的多维度评论: 1. 技术实现与图形学原理 这段代码虽然简短…...
DAMOYOLO-S基础教程:理解count字段与实际业务中目标计数逻辑映射
DAMOYOLO-S基础教程:理解count字段与实际业务中目标计数逻辑映射 1. 从一次“数数”的困惑说起 前两天,一个做零售分析的朋友找我帮忙。他兴奋地告诉我,他们用上了最新的AI目标检测模型,想自动统计货架上的商品数量。他上传了一…...
FLUX.1-dev-fp8-dit文生图+SDXL_Prompt风格效果展示:多分辨率适配(1024x1024/768x1344)
FLUX.1-dev-fp8-dit文生图SDXL_Prompt风格效果展示:多分辨率适配(1024x1024/768x1344) 你见过能同时驾驭方形海报和竖屏手机壁纸的AI画图工具吗?今天要聊的FLUX.1-dev-fp8-dit模型,配合SDXL Prompt风格插件࿰…...
SerialMP3库:GD3300D/TD5580A串口MP3模块驱动详解
1. SerialMP3 库概述:面向 GD3300D/TD5580A 串口 MP3 播放模块的嵌入式驱动框架SerialMP3 是一个专为基于 GD3300D 或 TD5580A 音频解码芯片的串口 MP3 播放板设计的 Arduino 兼容库。该库并非通用音频处理中间件,而是一个硬件协议抽象层(Har…...
英雄联盟段位修改完整解决方案:LeaguePrank免费工具终极指南
英雄联盟段位修改完整解决方案:LeaguePrank免费工具终极指南 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 还在为单调的游戏段位显示感到乏味吗?LeaguePrank这款创新的免费工具将彻底改变你的英雄联盟…...
SmallThinker-3B部署实录:在16GB内存笔记本上稳定运行长链推理服务
SmallThinker-3B部署实录:在16GB内存笔记本上稳定运行长链推理服务 1. 环境准备与快速部署 想要在普通笔记本上运行大模型推理服务?SmallThinker-3B-Preview让你用16GB内存就能实现这个目标。这个模型基于Qwen2.5-3b-Instruct微调而来,专门…...
