SQL性能优化
文章平均质量分 78
再来二十串!
PG\OG\MYSQL learner
展开
-
SQL性能优化-优化执行(更新中)
prepareStatement,将查询计划保存好,之后便可省去计划生成这一环节,其中保存的计划可以是存在参数的,后续执行时,只需要将参数绑定到计划上。可以强行走向量化执行,但是其查询计划并非是代价递推生成的,而是先生成的行存计划,之后直接对行存计划进行直接改造,因此得到的向量化计划并不一定是比较好的。通常使用在OLTP场景,因为OLTP场景下的SQL,其计划生成环节在整个时间中的比例较大,且计划相对简单单一,因此将这部分提取出来,能获得很好的效果。控制,1表示单并行,即功能关闭,> 1表示并行度。原创 2023-04-09 21:19:39 · 488 阅读 · 0 评论 -
SQL性能优化-算子与计划(更新中)
这样可以解决索引扫描中随机读带来的不必要性能损耗的问题,但也有一个新问题,若数据量还是比较大,则位图所需要的内存空间也会很大,因此此时会将位图按照页为单位进行构造,仅记录哪些页上有目标元组,扫上来页面后,进行一次ReCheck操作,进行二次筛选。但加了Limit情况就变了,采用HashAgg需要扫描所有数据并做哈希,采用GroupAgg+Sort的方案也需要扫描所有的数据并排序,但是采用GroupAgg+IndexScan的方案时我们仅需要精准的扫描前10个分组的数据即可。原创 2023-04-09 19:00:40 · 974 阅读 · 0 评论 -
数据库性能(更新中)
目录基于openGauss进行性能优化常用工具与指标xnboxperf与火焰图perf火焰图sysstat 工具包iostatsarhtopnmon业务SQL优化数据库对象的设计表与索引的设计SQL重写与计划调优认识计划数据库参数调整公共通用模块参数优化器执行器存储引擎主备高可用模块资源监控类模块其他模块BIOS及操作系统调整CPU预取网卡中断常见场景基于openGauss进行性能优化常用工具与指标xnboxperf与火焰图perf火焰图sysstat 工具包iostatsarhtop原创 2023-04-09 16:11:39 · 142 阅读 · 1 评论 -
SQL性能优化-表与索引的设计(更新中)
最普通的堆表、按照一定规则进行数据拆分的分区表、按照列进行组织的列存表、底层存储进行了抽象整合的段页式表、底层使用原地更新模式的inplace-update表、会话内临时存在的临时表、结构全局存在但数据会话存在的全局临时表、不带预写日志的unlogged表…以附属表的形式存在着,当我们创建一张表的时候,一定条件下会同时创建一张toast表,若我们表内的某行数据,有一列尺寸过大,则这列数据会存放到附属toast表内,表里则存放一个指向toast表的指针。当表很多或分区很多的时候,会生成大量的文件,管理不便;原创 2023-04-07 17:49:43 · 166 阅读 · 0 评论