检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
扫描残留文件函数 扫描残留文件函数仅8.3.0及以上集群版本支持,本章节所有函数仅限sysadmin角色调用。 pg_scan_residualfiles() 描述:用于扫描当前节点所连接数据库的所有残留文件记录。该函数为库级函数,与当前所在的数据库相关,可以在任意实例上运行。
扫描残留文件函数 扫描残留文件函数仅8.3.0及以上集群版本支持,本章节所有函数仅限sysadmin角色调用。 pg_scan_residualfiles() 描述:用于扫描当前节点所连接数据库的所有残留文件记录。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。
未分区剪枝导致SQL查询慢 问题现象 SQL语句查询慢,查询的分区表总共185亿条数据,查询条件中没有涉及分区键。 1 2 SELECT passtime FROM table where passtime<'2020-02-19 15:28:14' and passtime>'2020-02-18
户端IP、查询状态、完成时间、预估总执行时间(ms)、取消原因。 打开隐藏系统查询按钮可隐藏系统历史查询。 历史查询监控详情 单击指定历史查询监控的查询ID可触发该查询监控的详情页面,在详情页面中会展示当前监控的更多细节。例如查询语句的基本信息、在执行中的实时资源消耗、完整SQL语句以及查询计划。
查看执行计划和开销 执行计划显示如何对指代SQL语句的表格进行扫描,分为次序扫描和索引扫描。 SQL语句执行成本为预估的查询时间(查询的语句成本单位是随机的,通常情况下检查对象为磁盘页)。 查看SQL查询的计划和成本,可通过以下方式: 在“SQL终端”中输入查询或使用已有查询,单击工具栏的来查看解释计划。
Scan:按照表的记录的排列顺序从头到尾依次检索扫描,每次扫描要取到所有的记录。这也是最简单最基础的扫表方式,扫描的代价比较大。 Index Scan:对于指定的查询,先扫描一遍索引,从索引中找到符合要求的记录的位置(指针),再定位到表中具体的Page去获取,即先走索引,再读表数据。 因此,根据两种扫描方式的特点可知,多数情况下,Index
图形化查看执行计划和开销 Visual Explain计划从扩展JSON格式中获取信息,以图形化方式显示SQL查询。该功能有助于优化查询以增强查询和服务器性能及分析数据库所用的查询路径,并找出最拥挤,开销最高和运行最慢的节点。 图形化执行计划展示了SQL语句所引用的表是如何被扫描的(普通顺序扫描和索引扫描)。
ts_rewrite的这种形式接受一个起始查询和SQL查询命令。 这里的查询命令是文本字串形式,必须产生两个tsquery列。查询结果的每一行,第一个字段的值(目标子查询) 都会被第二个字段(替代子查询)替换。 当多个规则需要重写时,重写顺序非常重要; 因此在实践中需要使用ORDER BY将源查询按照某些字段进行排序。
般对数据和查询都有明显区间段特征的表使用分区策略可通过较小不必要的数据扫描,从而提升查询性能 在查询时,可通过分区剪枝技术尽可能减少底层数据扫描,即缩小表的扫描范围。分区剪枝是指对于分区表或分区索引来说,优化器可以自动从FROM和WHERE子句里根据分区键提取出需要扫描的分区,从
般对数据和查询都有明显区间段特征的表使用分区策略可通过较小不必要的数据扫描,从而提升查询性能 在查询时,可通过分区剪枝技术尽可能减少底层数据扫描,即缩小表的扫描范围。分区剪枝是指对于分区表或分区索引来说,优化器可以自动从FROM和WHERE子句里根据分区键提取出需要扫描的分区,从
作业中多个SQL有同样的子查询,并且子查询数据量较大。 Plan cost计算不准,导致子查询hash bucket太小,比如实际数据1000W行,hash bucket只有1000。 函数(如substr,to_number)导致大数据量子查询选择度计算不准。 多DN环境下对大表做broadcast的子查询。
字段进行分区,时间字段是最常见的分区字段。 业务查询有明显的区间范围特征。 查询数据可落到区间范围指定的分区内,这样才能通过分区剪枝,只扫描查询需要的分区,从而提升数据扫描效率,降低数据扫描的IO开销。 表数据量比较大。 小表扫描本身耗时不大,分区表的性能收益不明显,因此只建议对
字段进行分区,时间字段是最常见的分区字段。 业务查询有明显的区间范围特征。 查询数据可落到区间范围指定的分区内,这样才能通过分区剪枝,只扫描查询需要的分区,从而提升数据扫描效率,降低数据扫描的IO开销。 表数据量比较大。 小表扫描本身耗时不大,分区表的性能收益不明显,因此只建议对
数据倾斜查询优秀实践 导入过程存储倾斜即时检测 快速定位查询存储倾斜的表 父主题: 数据库管理
系统IO长期飙升过高,查询偶发性变慢。 查看偶发慢业务慢时的执行计划信息,慢在cstore scan,且扫描数据量不大但扫描CU个数较多。 如图,一个CU能够存放6W条记录,而计划中7W记录需要扫描2000+ CU,说明当前可能存在小CU较多的情况 。 排查方法 查看相关表CU中数据分布情况,以下操作在DN执行。
快速定位查询存储倾斜的表 目前提供的倾斜查询接口有函数:table_distribution(schemaname text, tablename text) 、table_distribution() 以及视图PGXC_GET_TABLE_SKEWNESS,客户可以根据自身业务情况来选择使用。
有访问特定索引的统计信息。 索引可以通过简单的索引扫描或“位图”索引扫描进行使用。位图扫描中几个索引的输出可以通过AND或者OR规则进行组合, 因此当使用位图扫描的时候,很难将独立对行抓取与特定索引进行组合, 因此,一个位图扫描增加pg_stat_all_indexes.idx_
有访问特定索引的统计信息。 索引可以通过简单的索引扫描或“位图”索引扫描进行使用。位图扫描中几个索引的输出可以通过AND或者OR规则进行组合, 因此当使用位图扫描的时候,很难将独立对行抓取与特定索引进行组合, 因此,一个位图扫描增加pg_stat_all_indexes.idx_
TopSQL查询示例 本章节以查询TPC-DS样例数据的作业为例,演示如何查看实时TopSQL和历史TopSQL。 配置集群参数 查询TopSQL资源监控信息之前,需要先配置相关的GUC参数,以便能查询到作业的资源监控历史信息或归档信息。步骤如下: 登录GaussDB(DWS)管理控制台。
GaussDB(DWS)算子可分为:扫描算子、控制算子、物化算子、连接算子、其他算子等。 扫描算子 扫描算子用来扫描表中的数据,每次获取一条元组作为上层节点的输入, 存在于查询计划树的叶子节点,它不仅可以扫描表,还可以扫描函数的结果集、链表结构、子查询结果集。常见的扫描算子如下表所示: 表1 扫描算子 算子