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内核技术优化解读.pptx
在项目过程中,总结的一些关于gp程序的开发相关的内容,包括gp的特性,详细的gp语法,格式,开发规范,注释,日志等等.并有一些实际的例子.
描述了GreenPlum的构架设计和设计原则,同时对如何优化表也进行了说明
Greenplum内核技术优化解读.pdf
greenplum开发规范手册.zip
greenplum--orca查询优化器详解1
Greenplum数据库开发基础
全新的Greenplum 6.0内核优化解读和7.0展望.pdf
摘要:针对分布式数据库查询效率随着数据规模的增大而降低的问题,以Greenplum分布式数据库为研究对 象,从优化查询路径的角度提出一个基于代价的最优查询计划生成方法。首先,该方法设计一种有效的代价模型来 估算...
greenplum优化与维护,日常使用和维护,基本功能的优化,注意事项
Greenplum深度优化技巧 漏洞挖掘 信息安全研究 安全分析 系统安全 渗透测试
greenplum 简介及数据库对比 。 greenplum hive infobright 对比。
1.1 逻辑数据模型2 1.1.1 支持通用的数据建模方式 2 1.1.4 星型模型概述3 1.1.4.3 星型模型实例 3 1.1.5 雪花模型实例4 1.1
greenplum数据库jdbc驱动下载 版本:greenplum-jdbc-5.1.4.jar
Greenplum两阶段事务源码分析,本ppt主要讲述了整个greenplum的两阶段事务的状态切换、调用流程和日志类型。
hadoop应用开发实例教程之Greenplum架构,由北风网提供,hhadoop应用开发实例教程主要介绍什么是Greenplum;Greenplum体系结构;Greenplum高可用性架构。安装Greenplum:配置环境;安装并初始化GPDB系统;启停数据库...
Greenplum-数据库开发基础ppt课件.ppt
GreenPlum6官方文档中文翻译,如下为节选: 有关配置,管理和监控Greenplum数据库安装以及管理,监控和使用数 据库的信息。该指南还包含有关Greenplum数据库架构和概念(例如 并行处理)的信息。 Greenplum...
greenplum的开发规范文档,规范化数仓 MPP数据库的使用
Greenplum的安装(体验版centos+Greenplum).