2023-06-02 18:48:47 来源:博客园
摘要:通过2个实例场景讲解GaussDB(DWS)运维解决方案。
本文分享自华为云社区《GaussDB(DWS)运维 -- 基表统计信息估算不准的常见场景及处理方案》,作者:譡里个檔。
场景1:基表过滤字段存在的隐式类型时,基表行数估算偏小这种场景绝大部分场景DWS能够处理,但是如果隐式类型转后的结果与统计信息中的字段枚举值的表达式不一样,就会导致估算的严重偏差
(资料图)
原始SQL如下
SELECT * FROM dmgrpdi.dwl_inv_res_rpt_ci_grp_f WHERE period_id=202212 AND source_flag=1;
对应的执行计划
QUERY PLAN------------------------------------------------------------------------------------------------------------------- id | operation | E-rows | E-memory | E-width | E-costs ----+------------------------------------------------------------------+--------+----------+---------+----------- 1 | -> Row Adapter | 14160 | | 717 | 680025.43 2 | -> Vector Streaming (type: GATHER) | 14160 | | 717 | 680025.43 3 | -> Vector Partition Iterator | 14160 | 1MB | 717 | 678241.33 4 | -> Partitioned CStore Scan on dwl_inv_res_rpt_ci_grp_f | 14160 | 1MB | 717 | 678241.33 Predicate Information (identified by plan id) ------------------------------------------------------------------------------- 3 --Vector Partition Iterator Iterations: 1 4 --Partitioned CStore Scan on dwl_inv_res_rpt_ci_grp_f Filter: ((period_id = 202212::numeric) AND ((source_flag)::bigint = 1)) Pushdown Predicate Filter: (period_id = 202212::numeric) Partitions Selected by Static Prune: 36
发现source_flag字段上存在隐式类型转换,查询字段source_flag的统计信息
postgres=# SELECT most_common_vals,most_common_freqs, histogram_bounds FROM pg_stats WHERE tablename = "dwl_inv_res_rpt_ci_grp_f" AND attname = "source_flag"; most_common_vals | most_common_freqs | histogram_bounds------------------+-----------------------------------+------------------ {01,02,04,03} | {.440034,.241349,.217413,.101089} | {05,06}(1 row)
发现隐式类型转后的结果(1)与统计信息中的字段枚举值("01")的表达式不一样
处理方案:修改过滤条件,禁止类型转换,并且使用正确的常量值书写过滤条件如上SQL语句中的source_flag=1修改为source_flag="01",修改后SQL语句如下
SELECT * FROM dmgrpdi.dwl_inv_res_rpt_ci_grp_f WHERE period_id=202212 AND source_flag="01";
查询新语句的执行计划
QUERY PLAN---------------------------------------------------------------------------------------------------------------------- id | operation | E-rows | E-memory | E-width | E-costs ----+------------------------------------------------------------------+-----------+----------+---------+----------- 1 | -> Row Adapter | 108359075 | | 717 | 480542.98 2 | -> Vector Streaming (type: GATHER) | 108359075 | | 717 | 480542.98 3 | -> Vector Partition Iterator | 108359075 | 1MB | 717 | 478758.88 4 | -> Partitioned CStore Scan on dwl_inv_res_rpt_ci_grp_f | 108359075 | 1MB | 717 | 478758.88 Predicate Information (identified by plan id) ------------------------------------------------------------------------------------------------- 3 --Vector Partition Iterator Iterations: 1 4 --Partitioned CStore Scan on dwl_inv_res_rpt_ci_grp_f Filter: ((period_id = 202212::numeric) AND (source_flag = "01"::text)) Pushdown Predicate Filter: ((period_id = 202212::numeric) AND (source_flag = "01"::text)) Partitions Selected by Static Prune: 36场景2:基表在多列组合主键上过滤时,基表行数估算偏大
这种场景是因为DWS对基表上多个过滤条件之间采取弱相关性处理,当多个过滤条件是主键时,可能导致结果集估算偏大。
原始SQL如下
SELECT * FROM mca.mca_period_rate_t mca_rate2WHERE period_number = "202208" AND from_currency_code = "RMB" AND to_currency_code = "USD"
执行信息如下
id | operation | A-time | A-rows | E-rows | Peak Memory | E-memory | A-width | E-width | E-costs ----+------------------------------------------------------+--------------------+--------+--------+-------------+----------+---------+---------+---------- 1 | -> Row Adapter | 444.735 | 1 | 2033 | 227KB | | | 321 | 22601.41 2 | -> Vector Streaming (type: GATHER) | 444.720 | 1 | 2033 | 873KB | | | 321 | 22601.41 3 | -> CStore Scan on mca_period_rate_t mca_rate2 | [435.167, 435.167] | 1 | 2033 | [5MB, 5MB] | 1MB | | 321 | 22427.41 Predicate Information (identified by plan id) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3 --CStore Scan on mca_period_rate_t mca_rate2 Filter: (((period_number)::text = "202208"::text) AND ((from_currency_code)::text = "RMB"::text) AND ((to_currency_code)::text = "USD"::text)) Rows Removed by Filter: 425812 Pushdown Predicate Filter: (((period_number)::text = "202208"::text) AND ((from_currency_code)::text = "RMB"::text) AND ((to_currency_code)::text = "USD"::text))
可以发现基表mca.mca_period_rate_t的行数估算严重偏大。
使用如下SQL语句查看表mca.mca_period_rate_t的定义
SELECT pg_get_tabledef("mca.mca_period_rate_t"::regclass);
查询表mca.mca_period_rate_t定义
SELECT pg_get_tabledef("mca.mca_period_rate_t");SET search_path = mca;CREATE TABLE mca_period_rate_t (seq numeric NOT NULL,period_number character varying(10) NOT NULL,from_currency_code character varying(20) NOT NULL,to_currency_code character varying(20) NOT NULL,begin_rate numeric(35,18),end_rate numeric(35,18),avg_rate numeric(35,18),creation_date timestamp(0) without time zone NOT NULL,created_by numeric NOT NULL,last_update_date timestamp(0) without time zone,last_updated_by numeric,rmb_begin_rate numeric(35,18),usd_begin_rate numeric(35,18),rmb_end_rate numeric(35,18),usd_end_rate numeric(35,18),rmb_avg_rate numeric(35,18),usd_avg_rate numeric(35,18),crt_cycle_id numeric,crt_job_instance_id numeric,last_upd_cycle_id numeric,upd_job_instance_id numeric,cdc_key_id character varying(128) DEFAULT sys_guid(),end_rate2 numeric(35,18),avg_rate2 numeric(35,18),last_period_end_rate numeric(35,18))WITH (orientation=column, compression=low, colversion=2.0, enable_delta=false)DISTRIBUTE BY REPLICATIONTO GROUP group_version1;CREATE UNIQUE INDEX mca_period_rate_u1 ON mca.mca_period_rate_t USING cbtree (period_number, from_currency_code, to_currency_code) TABLESPACE pg_default;
发现 (period_number, from_currency_code, to_currency_code) 为组合的唯一索引。
处理方案:对组合索引列收多列统计信息注意此种方案只适用在基表比较小的情况下。因为多列统计信息需要使用百分比采样的方式计算统计信息,当表比较大时,统计信息计算耗时回很长。
针对如上查询语句执行如下语句收集(period_number, from_currency_code, to_currency_code) 多列统计信息
ANALYZE mca.mca_period_rate_t((period_number, from_currency_code, to_currency_code));
收集多列统计信息之后,基表的行数估算恢复正产
id | operation | A-time | A-rows | E-rows | Peak Memory | A-width | E-width | E-costs ----+-------------------------------------------------------------------------------------+--------------------+--------+--------+-------------+---------+---------+--------- 1 | -> Row Adapter | 195.504 | 1 | 1 | 227KB | | 321 | 675.14 2 | -> Vector Streaming (type: GATHER) | 195.491 | 1 | 1 | 873KB | | 321 | 675.14 3 | -> CStore Index Scan using mca_period_rate_u1 on mca_period_rate_t mca_rate2 | [164.344, 164.344] | 1 | 1 | [5MB, 5MB] | | 321 | 501.14 Predicate Information (identified by plan id) ---------------------------------------------------------------------------------------------------------------------------------------------------------- 3 --CStore Index Scan using mca_period_rate_u1 on mca_period_rate_t mca_rate2 Index Cond: (((period_number)::text = "202208"::text) AND ((from_currency_code)::text = "RMB"::text) AND ((to_currency_code)::text = "USD"::text))
点击关注,第一时间了解华为云新鲜技术~
标签:
- 加快虚拟仿真实训基地建设 启动职业学校信息化建设试点很必要
- “双减”后如何在满足学生多样需求方面做“加法”?
- 处于生理活跃期且心理发展不成熟 高校开设公共卫生必修课很必要
- 价格低于相应蔬菜零售价 西安投放约1万吨政府储备蔬菜
- 深受年轻消费群体所青睐 国潮风商品成为年货新选择
知识
- 他把银行卡卖给骗子,“黑吃黑”“截胡”十万元
- “老司机”4S店试驾豪车 结果油门当刹车撞了
- 新开工改造城镇老旧小区5.34万个
- 发动巡河志愿者2万余名 “用心护好每一条河”
- 假客服的套路:伪装成大平台客服,层层布局引人上钩
人物
- 2个场景实例讲解GaussDB(DWS)基表统计信息估算不准的处理方案
- 【环球聚看点】华为Pocket S折叠屏等5款神机将升级HarmonyOS 3
- 焦点消息!给孩子一个“明亮”的未来
- 安全条例2022版全文_安全条例
- 猪价变化,小麦玉米涨价,油价好转-天天快资讯
- 广西多举措培育全国名特优新农产品 8个农产品入选今年首批全国名特优新|环球新动态
- 中国科技大佬们准备觐见“AI之王”-当前看点
- 基金卖不动了?业内人士:低点或为转机
- pt999铂金回收价格今日多少钱一克(2023年06月02日)
- 2023年吉林市函授报名须知(新办法)
- 美的空调显示e1是什么故障_经常看到E1 E1是什么意思 什么是E1网络 E1接口
- 天天动态:基金圈颤抖!机器人“赛博坦”即将上岗 AI机器人可以替代基金经理吗?
- state grid国家电网_state grid
- 【聚看点】夏收攻坚战 | 保畅通 抢“三夏” 助力机收车辆过黄河
- 【天天聚看点】玩梗大脑洞好玩吗 玩梗大脑洞玩法简介
- 全球微头条丨中国吉林一号卫星:拍到亚马逊河的原始部落!
- 婺源县气象台发布雷电黄色预警信号【III级/较重】【2023-06-01】 天天快资讯
- 王欣瑜首进大满贯32强!张之臻、张帅、朱琳再登场! 天天时讯
- 新手买车容易被坑,记住这几点,能避免被4s店套路 聚焦
- 我国水资源短缺的原因(水资源短缺的原因)|天天热闻
- 小米6(评测)
- 天天快讯:美的置业(03990)前5个月合同销售额约354.6亿元 同比增加11.09%
- 科学教育应该什么样?这个《意见》给出答案-天天快资讯
- 国家发改委:坚决杜绝以节能、“双碳”为名搞“拉闸限电”-全球微动态
- 奔驰手刹在哪里呀(奔驰手刹在哪里)-环球热头条
- “师傅,您不舒服吗?” 幸好她多问了一句,救了一条命! 世界热讯
- 官方:切尔西女足与里斯-詹姆斯妹妹劳伦-詹姆斯续约至2027年
- 汕尾红海湾旅游攻略图_汕尾红海湾旅游攻略
- 追星人|从未见过发射的航天人_环球观速讯
- 【环球热闻】光圣半导体与美国普瑞光电再次签约战略合作关系
- 南亚新材跌3.3% 2020上市即巅峰超募8.7亿
- 世界微头条丨景嘉微拟定增募资不超42亿元 2022年经营现金净额-3亿
- 盖世战王_盖世ace
- 深信服三大疑问:80亿资金趴账面又募资 突出的现金流与资金缺口测算是否合理 重点聚焦
- 世界热点!落地半年,个人养老金制度实施进展如何?
- 环球微动态丨“优质”幼儿园烂尾 百名投资人超3亿元资金去向不明
- 风财讯《2023年5月房企官方视频号影响力指数50强》发布-环球关注
- 至高补贴20%、三免服务、送新取旧同步 京东家电家居以旧换新的“三驾马车” 当前焦点
- 最香的电混SUV?吉利银河L7 13.87万起售
- 青萍风起《战意》最新赛季狂岚上线在即!
- 环球即时看!怡亚通投资新设实业公司,经营范围含二手车经纪
- 三立期货6月1日早间内参——宏观_当前通讯
- 今天,如何让阅读陪伴孩子成长 天天报道
- 5月31日基金净值:易方达MSCI中国A50互联互通ETF最新净值0.7445,跌1.44% 观点
- 锦旗尺寸有多少种图片_锦旗尺寸有多少种
- 全球微速讯:北京青年主题曲名字_北京青年主题曲是啥
- 飞扬童年
- 环球实时:联想乐phone2刷机教程(联想乐phones2)
- 花菜怎么做好吃家常菜视频_花菜怎么做好吃-焦点热闻
- 环球微速讯:6000元以上选iPhone14pro,双十一是不是更便宜?
精彩阅读
- 如何将照片转换成word文档电脑_如何将照片转换成word文档|世界时快讯
- 个人养老金制度实施半年,参加人数超 3700 万、产品数超 650 只 环球关注
- 电脑刷机教程联想_电脑刷机教程
- [路演]品渥食品业绩说明会:2023年将坚持聚焦主业 不断探索创新业务模式 每日资讯
- 极米科技(688696):获得国家鼓励的重点软件企业认定
- 云顶之弈pbe服进不去怎么办 英雄联盟美测服登录不了解决方法
- 多地发布 2022 年平均工资,这些行业“钱景”好 微资讯
- 【独家】国内期货油脂板块下挫
- 全球动态:快讯!河南18个省级专家组正在全省各地开展技术指导服务
- 宝利国际5月31日盘中涨幅达5%
- 焦点速递!农业农村系统两名科技工作者获评贵港“最美”
- 华润置地携温州城建27.4亿元竞得温州鹿城区1宗商住地 溢价率2.24%-当前速看
- 天天热点评!快闪数说丨“美债上限”是怎么被玩坏的
- 沃森生物:5月30日融券卖出金额155.30万元,占当日流出金额的0.53%-环球快资讯
- 惠阳:年内力争规上工业企业突破1300家
- 中国电动汽车火灾安全指数正式发布 引领新能源汽车产业持续提升安全技术水平 今日报
- 博士后招聘是学术界“种族歧视”重灾区?《自然》呼吁多样性变革
- 市场调整消化估值压力 基础设施REITs隐含收益率提升|天天热点
- 国内首台千万方级乙烷回收国产膨胀机投产
- 记者观察丨土埃关系回暖将为两国带来合作机遇 中东多国寻求自主发展道路
- 环球报道:专访演变成激烈争吵!俄大使怼英记者:再冒犯就终止采访
- 戴眼镜的教授上太空 “航天梦”离普通人更近了
- 韩国文化部:尚没有沉迷游戏超过三年的案例|世界观热点
- 湖南启动实施“温暖社保”行动发布三年行动计划
- 【天天热闻】多地发布2022年平均工资 这些行业“钱景”好
- 前脚大股东要减持,后脚公司欲回购,光伏巨头操作引争议,公司回应:二者并无关联_焦点简讯
- 美智库:世界各国都在减少美元依赖 去美元化势不可挡|全球即时
- 【天天播资讯】掌声响起来原唱歌词(掌声响起来原唱)
- 知识产权助力长三角一体化发展|当前视点
- 戴森加速提升洁净家居技术可及性 助力本土消费提质升级
- 北京上海齐发声.全国算力建设高潮将来临 环球新消息
- 微资讯!珠江投资王晞:房企不能完全依靠资本,需在产品上做文章
- ⚽足协杯综述:山东德比淄博点胜济南创纪录 云南玉昆2-0淘汰中甲领头羊|热文
- 迅雷版权方要求无法下载解决方法(迅雷版权方要求无法下载) 焦点速读
- 天天微资讯!厦门市人民体育场下月恢复开放
- 中国人民财产保险股份有限公司伊吾支公司收到中国银行保险监督管理委员会哈密监管分局的行政处罚决定_世界播资讯
- 马斯克会见宁德时代曾毓群 ?双方均未回应 世界今头条
- 美媒:纽约市大麻店泛滥 越来越多学生“嗨”着上课-速读
- 小时候,人工割麦抢收,一阵大暴雨,经常淋得裤裆都滴水回家
- 竞速新能源汽车赛道:肇庆剑指千亿级新能源汽车产业集群
- 中方是否接受欧盟提供的疫苗?外交部回应 微头条
- csgo买皮肤去哪个平台 五大公认好用的csgo交易平台
- 热点聚焦:汉书的作者及朝代_汉书 的作者是谁
- 冰淇淋登陆31个省区市,贵州茅台如何为下沉渠道保鲜?
- 本地链接受限(为什么我的本地连接受限制)-天天快报
- 将涞看期:2023-05-30商品期货分析晚评-看热讯
- 广州市儿童活动中心招聘教师37人(附报名条件)
- 商品期货收盘跌多涨少,沪锡涨近3%,纯碱、玻璃跌超3% 当前讯息
- 天天最资讯丨先马夜莺3(先马夜鹰2)
- 东方水利签订1.03亿元重大合同 预计对交货期间业绩产生积极影响