greenplum 程序开发优化原则
1、批量数据处理后,无论成功与否,都应该进行vaccum analyze <table_name>.
2、对于大表的DISTINCT操作,请用 GROUP BY操作进行替代
3、对于大表的UNION操作,请用UNION ALL 加 group by进行改写
4、嵌套查询操作,尽量改写成连接查询操作
5、大表更新操作,尽量通过外连接+插入+truncate进行替代
6、大表删除操作,尽量通过外连接+插入+truncate进行替代
7、尽量避免进行存储过程函数嵌套导致锁冲突,考虑使用其它语言进行总体调度,比如shell,java,c等。
8、尽量避免在数据库中使用序列,游标, 循环,考虑对数据进行整体操作。
9、避免高度频繁的建表删表操作,容易造成字典破碎和字典锁的问题,因此可以通过临时表和其它语言方式替代。
11、检查大表的hash键定义是否可以保证每个segment存储均匀,数据处理均匀,以及大表连接操作过程中可以尽量避免motion操作。从目前业务看,可以考虑客户ID, 电话号码作为首选的hash键,然后进行检查。
12、为了加快开发进度,减少开发时的彼此影响,建议每个开发人员装一个gp虚拟机,相关表放入少量记录,进行单步测试。通过单步测试后,统一提交到测试服务器上进行联合测试和压力测试。
13、运行较大操作时,不建议使用pgadmin完成操作,建议写成shell脚本在后台进行测试。避免频繁不正常中断操作,对整个开发产生影响
14、尽量避免不正常中断操作,如需不正常中断操作,请使用函数pg_cancel_backend函数,并耐心等待3~5分钟,再继续相关操作,避免造成数据字典破坏。
pg_cancel_backend and pg_terminate_backend send signals (SIGINT or SIGTERM respectively) to backend processes identified by process ID. The process ID of an active backend can be found from the procpid column of the pg_stat_activity view, or by listing the postgres processes on the server (using ps on Unix or the Task Manager on Windows).
两者都是boolean类型的,返回为true或者false。
但是在greenplum(3.3.6)中使用时发现GP中并没有pg_terminate_backend这个函数,故略去不说。
g_cancel_backend这个函数主要是用来取消一个查询(进程),权限必须是管理员或者查询的所有者。具体如下:
首先,查出你要取消的进程号
select procpid from pg_stat_activity where ......;
其次,用这个函数来取消
select pg_cancel_backend(procpid);。
这个函数主要是用来回滚事务,但是会话(session)并不会退出去,比如你要用这个函数来终止一个<IDLE>是不可能的。
当一个查询语句查询时间较长时用这个函数偶尔也不好用,这个时候需要多执行几次或去OS上用kill命令来删除这个进程效果就来得快。
相关推荐
Greenplum程序开发规范涉及了多个方面,包括程序语法、数据类型、游标使用以及异常处理。以下是这些方面的详细解释: 1. GP程序语法规范: Greenplum与Oracle在语法上有显著差异,例如它没有存储过程的概念,所有...
11. **SQL增强功能**:Greenplum引入了新的SQL特性,如窗口函数(SQL 2003)、Cube/Grouping Sets(SQL 1999)、JSON支持(SQL 2016),这些特性极大地提高了开发人员的生产力。 综上所述,Greenplum 6.0在内核技术...
Greenplum-Orca 查询优化器是 Pivotal 公司开发的一款新型查询优化器,旨在提高大数据分析查询的性能。Orca 查询优化器采用模块化架构,整合了 state-of-the-art 查询优化技术和原创研究成果,实现了高效、可扩展、...
《Greenplum开发规范手册》是一份针对Greenplum数据库系统开发的重要参考资料,旨在提供一套标准的操作和编程规范,以确保高效、稳定且安全的数据管理。Greenplum是一款基于MPP(大规模并行处理)架构的分布式数据...
描述了GreenPlum的构架设计和设计原则,同时对如何优化表也进行了说明
《基于Greenplum数据库的查询优化》这篇文章探讨了在大数据环境下,如何提高分布式数据库查询效率的问题,特别是针对Greenplum数据库。随着数据规模的增长,查询效率通常会下降,因此研究提出了一个基于代价的最优...
7. Greenplum数据库客户端接口和程序:Greenplum数据库支持多种客户端接口和程序,包括psql、pgAdmin III、ODBC/Datadirect、JDBC、Perl DBI、Python、libpq、OLE DB等。 8. Greenplum数据库Master节点:Master节点...
在Greenplum中,合理的物理设计能够充分利用其并行处理能力,优化查询性能。 在Greenplum应用开发中,理解并灵活运用这些概念,将有助于构建出高效、可靠的数据处理系统,满足大数据时代的需求。
- 优化后的只读事务两阶段提交流程更加高效。 **1.3 HTAP 性能优化** - **性能提升**: 在 HTAP (Hybrid Transactional/Analytical Processing) 方面实现了高达 70 倍的性能提升。 - **具体指标**: - SELECT 操作...
Greenplum 6.0版本的发布,标志着其内核技术的重大优化和演进。本文将从Greenplum 6.0内核新技术、新特性解读以及未来7.0版本的展望三个方面,详细解读Greenplum此次版本升级所带来的变化。 首先,从Greenplum 6.0...
在Java应用程序中,通过JDBC驱动程序,开发者可以连接到Greenplum数据库,执行SQL查询,读取和写入数据。"greenplum-jdbc-5.1.4.jar"是Greenplum数据库的JDBC驱动程序的一个版本,用于在Java环境中与Greenplum进行...
本文将深入探讨Greenplum的Java驱动,即greenplum-jdbc-5.1.4.jar,以及如何在诸如DataGrip等集成开发环境中(IDE)进行有效利用。 首先,我们要理解什么是JDBC驱动。JDBC(Java Database Connectivity)是Java语言...
《Greenplum深度优化技巧》一文探讨了在信息安全领域如何对Greenplum数据库进行深度优化,以提高系统的稳定性和安全性,并实现高效的数据处理。文章由阿里云高级专家张广舟(明虚)主讲,重点围绕ApsaraDB for ...
- **Greenplum Master:** Greenplum系统中的核心组件,负责处理客户端请求、查询优化与分发任务到各个段实例(segment)进行并行处理。 - **Greenplum Segments:** 数据存储与处理的主要场所,每个segment都是一个...
本文将详细讨论如何通过Java连接到Greenplum数据库,并重点介绍“greenplum.jar.zip”这个压缩包中的核心组件——greenplum.jar,它是实现Java应用程序与Greenplum数据库交互的关键。 首先,让我们了解一下...
- DataDirect的Greenplum ODBC驱动程序是专门针对Greenplum数据库设计的,它提供了一种高效的方式来访问和处理存储在Greenplum中的大量数据。 - 这个64位版本的驱动程序确保了在64位操作系统下最佳的性能和稳定性...
Greenplum JDBC驱动是连接Java应用程序和Greenplum数据库的桥梁,它实现了JDBC接口,使得Java开发者可以利用熟悉的JDBC API进行数据操作。 3. **Greenplum JDBC驱动5.1.4特性** - 兼容性:驱动兼容JDBC 4.1标准,...
`greenplum-1.0.jar`正是Greenplum数据库的Java驱动程序,它允许Java应用程序通过JDBC(Java Database Connectivity)接口连接到Greenplum数据库,执行SQL语句,进行数据操作和查询。 接下来,我们讨论PostgreSQL,...
- **Greenplum and PostgreSQL Compatibility**:虽然Greenplum基于PostgreSQL开发,但它在许多方面进行了扩展和定制,以满足大数据处理的需求。这部分内容解释了两者之间的兼容性和差异。 #### 四、查询处理 - **...
greenplum优化与维护,日常使用和维护,基本功能的优化,注意事项