greenplum程序开发优化原则

greenplum程序开发优化原则

ID:8976021

大小:14.06 KB

页数:2页

时间:2018-04-13

greenplum程序开发优化原则_第1页
greenplum程序开发优化原则_第2页
资源描述:

《greenplum程序开发优化原则》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、greenplum程序开发优化原则1、批量数据处理后,无论成功与否,都应该进行vaccumanalyze.2、对于大表的DISTINCT操作,请用GROUPBY操作进行替代3、对于大表的UNION操作,请用UNIONALL加groupby进行改写4、嵌套查询操作,尽量改写成连接查询操作5、大表更新操作,尽量通过外连接+插入+truncate进行替代6、大表删除操作,尽量通过外连接+插入+truncate进行替代7、尽量避免进行存储过程函数嵌套导致锁冲突,考虑使用其它语言进行总体调度,比如shell,java,c等。8、

2、尽量避免在数据库中使用序列,游标,循环,考虑对数据进行整体操作。9、避免高度频繁的建表删表操作,容易造成字典破碎和字典锁的问题,因此可以通过临时表和其它语言方式替代。11、检查大表的hash键定义是否可以保证每个segment存储均匀,数据处理均匀,以及大表连接操作过程中可以尽量避免motion操作。从目前业务看,可以考虑客户ID,电话号码作为首选的hash键,然后进行检查。12、为了加快开发进度,减少开发时的彼此影响,建议每个开发人员装一个gp虚拟机,相关表放入少量记录,进行单步测试。通过单步测试后,统一提交到测试服务器上进行联合测试和压力

3、测试。13、运行较大操作时,不建议使用pgadmin完成操作,建议写成shell脚本在后台进行测试。避免频繁不正常中断操作,对整个开发产生影响14、尽量避免不正常中断操作,如需不正常中断操作,请使用函数pg_cancel_backend函数,并耐心等待3~5分钟,再继续相关操作,避免造成数据字典破坏。pg_cancel_backendandpg_terminate_backendsendsignals(SIGINTorSIGTERMrespectively)tobackendprocessesidentifiedbyprocessID.The

4、processIDofanactivebackendcanbefoundfromtheprocpidcolumnofthepg_stat_activityview,orbylistingthepostgresprocessesontheserver(usingpsonUnixortheTaskManageronWindows).两者都是boolean类型的,返回为true或者false。但是在greenplum(3.3.6)中使用时发现GP中并没有pg_terminate_backend这个函数,故略去不说。pg_cancel_backend

5、这个函数主要是用来取消一个查询(进程),权限必须是管理员或者查询的所有者。具体如下:首先,查出你要取消的进程号selectprocpidfrompg_stat_activitywhere......;其次,用这个函数来取消selectpg_cancel_backend(procpid);。这个函数主要是用来回滚事务,但是会话(session)并不会退出去,比如你要用这个函数来终止一个是不可能的。当一个查询语句查询时间较长时用这个函数偶尔也不好用,这个时候需要多执行几次或去OS上用kill命令来删除这个进程效果就来得快。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。