首页 > 数据库 >11_性能调优_如何调优_性能问题_跟踪问题_SQL规划

11_性能调优_如何调优_性能问题_跟踪问题_SQL规划

时间:2022-11-10 10:48:45浏览次数:38  
标签:11 GP 性能 查询 索引 调优 数据库

一、如何性能调优

1、设置性能预期

可以接受的查询时间,每分钟的查询数等等;

基准线(Benchmarks)

 

2、了解当前系统的基本的硬件性能

I/O:磁盘吞吐量,容量、CUP、内存、网络;

 

3、了解当前系统的负载

时间窗口是否满足当前应用?

  跑批、查询、其他用户的访问等等;

资源竞争?

  几个用户同时提交几个打的命令 等;

 

数据竞争?

  数据并发的访问、同时的查询等;

4、指定优化方案

 

二、常见的性能问题

硬件问题/失败的实例;

资源分配和竞争;

不精确的数据统计:在GP当中我们的查询是非常依赖统计的,如果没有一个合适的统计,我们就不能生产一个合适的查询计划;

不均衡的数据分布;

数据库设计:表设计、索引设计等等;

SQL规划;

 

1、硬件问题/失败的实例

 

 注:剩下的30%是给我们留余地,比如清理、扩容等;

        max_fsm_relations>这三个对象加起来的数,这样才不会超过空闲空间映射;

 

2、资源分配和竞争

(1)资源队列

在系统中限制活动的查询;

限制特定用户查询的能力(成本、优先级、内存)

(2)在低使用时间进行管理工作

Data loading、ETL、VACCUM、ANALYZE、Backups

(3)合理规划时间窗口来避免锁冲突

避免并发的会话在同一时间更新相同的数据;

(4)资源相关的配置参数

work_mean=32M(当我们有排序的时候我们会用到这个空间)

maintenance_work_mean=64M(维护的工作内存)

shared_buffers=125M

 

三、数据库统计(ANALYZE)

1、查询计划依赖统计信息生成

 

2、在下列数据库操作结束后执行ANALYZE:

数据装载、从备份中恢复、模式中的改变(添加索引等)、插入更新或者删除数据;

 

3、配置统计信息的收集

default_statistics_target=25

gp_analyze_relative_error=0.25(分析允许25%的错误)

很对特定的列:ALTER TABLE table ALTER id SET STATISTICS 6 ;

针对外部表:update pg_class set reltuples=500000, relpages=150 where relname=' external_table ' ;

 

四、数据分布

1、表数据分布要考虑的几个方面

 

 

2、检查数据偏斜情况

 

 

3、重新平衡表数据

 

 

五、数据库设计

1、数据类型的选择

 2、非标准化(星型模型)

   注:星型模型是又事实表+维度表:事实表为中心,维度表发散;

3、表分区

 

六、常见的性能问题

1、数据库设计-索引

在GP中很少用索引(GP用的是随机寻址);

先测试五索引的性能;

可以增加OLTP类型工作负载的性能;

其他使用索引考虑的方面:

 

 配置索引使用:enable_indexscan=on | off(如果索引真的有用可以设置为on)

                          show enable_indexscan;(可查看)

 

 七、SQL规划

1、一般考虑的方面

了解你的数据

最小化返回的数据

避免不必要的列/表在结果集中

避免大的排序

在表连接是匹配数据类型

 

2、GP特殊的考虑

尽量使用分布键进行关联查询

考虑数据分布策略

 

 八、跟踪性能问题

1、系统数据字典表和视图

pg_stat_activity

pg_locks/pg_class(需要通过id关联)

 

2、查询计划

3、数据库日志

 

 4、UNIX系统工具(gpssh)

调用监控工具如:ps、top、iostat、vmstat、netstat等

 

标签:11,GP,性能,查询,索引,调优,数据库
From: https://www.cnblogs.com/xiao-wang-tong-xue/p/16874449.html

相关文章

  • 性能测试基础知识
    1.1、性能概述:性能决定了一个系统支撑其业务的能力。可以描述为系统稳定运行,高并发访问服务不会出现宕机,用户访问页面需要的时间,系统能够支撑多少用户并发访问。也可以......
  • 题解 SP11198 【IPAD - Ipad Testing】
    postedon2021-06-0220:59:42|under题解|sourceSP11198是个神题,它考察了选手们的记忆、乱搞、找规律、压行能力。本题题解是乱搞题解,没有证明。下面就由我来解......
  • 2022.11.10
    P5226小yue解密码反正我觉得这题挺毒瘤的(我太菜了),根本想不到第一篇题解的二分的思路(我太菜了)。但主要还是调代码调的我快逝世了,样例和Hack都过了但永远0pts。还好......
  • 11.9 结题报告
    T1考场用时:\(40\)min期望得分:\(100\)pts实际得分:\(100\)pts这题以前做过。首先显然的一点是小Y行走的路径是一棵树,这题可以分两部分来做,首先对于每一个节点按照......
  • 2022-11-9学习内容
    1.案例-购物车-数据库准备1.1MyApplication.java改为内部存储私有空间//内部存储私有空间Stringdirectory=getFilesDir().toString()+File.separatorCh......
  • 2022.11.9
    ###noip模拟为什么一点儿进步都没有啊。。。怎么还越来越菜了。。。。。。  ##出错点t1:MLE。。。。。。也是挺牛t4://intans=0;longlongans=0;//n*n啊不......
  • 【2022-11-09】luffy项目实战(四)
    一、前台首页组件编写#HomeView.vue页面组件#Header.vue头部组件#Banner.vue轮播图组件#Footer.vue尾部组件1.1HomeView.vue<template><divcla......
  • 性能爆表:利用ThreadPoolTaskExecutor批量插入百万级数据实测!
    来源:azdebug.blog.csdn.net/article/details/103697108前言开发目的:提高百万级数据插入效率。采取方案:利用ThreadPoolTaskExecutor多线程批量插入。采用技术:spring......
  • #yyds干货盘点#【愚公系列】2022年11月 微信小程序-导航(跳转)
    前言1.navigatornavigator是页面跳转的标签,具体参数如下:属性类型默认值必填说明最低版本targetstringself否在哪个目标上发生跳转,默认当前小程序2.0.7......
  • 2022.11.09 NOIP2022 模拟赛六
    科学Source:CF461CApplemanandaSheetofPaper,*2200。注意到对于\(p\le\lfloor\frac{now}{2}\rfloor\),直接暴力维护的复杂度是对的。而对于其\(>\)的情况,翻转......