PolarDB产品使用问题之sql运行报错是神么原因

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。

问题一:PolarDB产品使用问题之sql运行报错是神么原因


PolarDB有一个SQL.语句。 没有group by 的时候很快 0.4S。有group by 就很慢很慢 60S。我调整 tmp_table_size 参数,几乎没有作用。 请问还有什么优化方案吗?explain

select a.,d. ,b.advanceid,b1.BUF10,b2.qty,b3.BUF10,c.attrpricetrace,bu.b2b_isputon,mu.b2b_isputon,bg.billdetailid,bs.Flag

from erp_bill_index a force index(idx_for_sale_analysis)

#

datascope_join_d

inner join erp_goods_Stock_inout_deal d force index(idx_for_sale_analysis)

ON d.profileid= a.profileid AND d.billid= a.billid

LEFT JOIN erp_bill_sale b force index(idx_for_sale_analysis) ON-- b.billid = a.billid AND a.profileid= b.profileid and

b.billid = a.billid and d.billdetailid= b.billdetailid -- and b.billtype in (601,607)

LEFT JOIN erp_bill_sale_exchange b1 ON b1.billid = a.billid AND a.profileid= b1.profileid and d.billdetailid= b1.billdetailid

LEFT JOIN erp_bill_real_inout b2 ON b2.frombillid = a.billid AND a.profileid= b2.profileid AND b2.frombilldetailid=d.billdetailid AND a.billtype=611

LEFT JOIN erp_bill_sale_return b3 ON b3.billid = a.billid AND a.profileid= b3.profileid and d.billdetailid= b3.billdetailid

LEFT JOIN erp_bill_detail_goods_attribute c ON c.billdetailid= d.billdetailid AND c.billid = d.billid AND c.profileid= d.profileid

left join erp_bill_index_ext e force index(idx_for_sale_analysis)

on e.billid=a.billid and e.profileid=a.profileid

LEFT JOIN bas_goods_unit bu ON d.gid=bu.gid AND d.profileid=bu.profileid AND bu.uid=d.muid

left join bas_goods_unit mu on mu.gid=d.gid and mu.profileid=b.profileid and mu.usetype&1>0

LEFT JOIN erp_contract_bill_goodscash bg ON bg.billid=d.billid AND bg.billdetailid=d.billdetailid AND bg.profileid=d.profileid

left join bas_store bs on d.sid = bs.sid

#

shownode inner join bas_goods g on g.profileid=d.profileid and g.gid=d.gid

#

dealer left join bas_dealer bd on bd.did=a.did and bd.profileid=a.profileid

LEFT JOIN bas_goods_unit big ON d.gid=big.gid AND d.profileid=big.profileid AND big.sort=3 and big.Flag = 0

LEFT JOIN bas_goods_unit middle ON d.gid=middle.gid AND d.profileid=middle.profileid AND middle.sort=2 and middle.flag = 0

left join bas_clerk bc on bc.cid=a.cid and bc.profileid=a.profileid

#

showbranch left join bas_branch br on br.profileid=a.profileid and br.bid=a.bid

where a.billtype in(601,607,603,715,602) AND a.status >=20 and a.ifred = 0 and a.profileid = 200015950

AND ( TRUE or bc.cid=638839)

#

ginfo

and true and a.billdate>='2023-01-01' and a.billdate<'2024-01-09'

这个是没有group by 的, show profile 查看。耗时都在sending_data


参考回答:

而不加GROUP BY检索到500条数据就结束了,两个肯本不在一个量级上,你先包一层先LIMIT在去group by那也很快就会结束了,如果您希望提高group by..limit...的性能,可以尝试在group by的表上建立对应索引。这样可以使用流式计算,有limit的时候可以提前结束。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/598260



问题二:PolarDB有一个表加了索引但是查询没有使用吗 ?


PolarDB有一个表加了索引但是查询没有使用吗 ?


参考回答:

楼主你好,据我所知在阿里云PolarDB中,有时候会遇到一个表加了索引但查询没有使用的情况,这可能是由于统计信息不准确,PolarDB使用统计信息来做查询优化,如果统计信息不准确或者过期,就可能导致查询计划选择不正确的索引,你可以通过手动收集统计信息或者使用自动收集统计信息功能来解决这个问题。

还有就是查询条件不准确,如果查询条件不准确或者无法满足索引的选择度,就可能导致查询优化器选择全表扫描而不是使用索引,你可以通过优化查询条件来改善查询性能。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/597584



问题三:PolarDB今天这个实例。有一个语句。我回放很快,慢日志看到很慢,造成CPU上升到100%?


"PolarDB今天这个实例。有一个语句。我回放很快,慢日志看到很慢,造成CPU上升到100%,如何解决?

"


参考回答:

我看您实例是56 的,还没有这个参数


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/597582



问题四:PolarDB还有这个也是没有走索引的 麻烦也帮忙看下?


PolarDB还有这个也是没有走索引的 麻烦大佬也帮忙看下?

create_time 是有索引的


参考回答:

表可以创建很多索引,优化器在选择的索引的时候,是根据代价选择的, 走哪个索引代价低,就会选择哪个索引,并不是创建出来的索引在一条查询里都要用上,当前query选择idx_sender_id索引代价更低, 查询更快, 实际数据也是sender_id= 1724591条件过滤性更好, 所以计划没有问题;


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/597575



问题五:PolarDB这个sql运行报错了,帮忙看看?


PolarDB这个sql运行报错了?


参考回答:

两句中间少个分号,set前加个分号吧,基于cost选择的"index": "idx_depletion_type"基于当前query,这两个索引idx_depletion_type, idx_create_time需要扫描的数据量如下优化器选择的索引没有问题的;不过两个索引的代价相差不是很大, 如果变动时间范围,对应数据量不一样,代价不一样,也可能会选择另外一个索引?


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/597574

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
17天前
|
SQL 关系型数据库 MySQL
拖.sql文件到cmd中运行
通过命令行工具cmd来运行SQL脚本文件,包括登录MySQL数据库、选择数据库和使用source命令执行脚本文件的步骤。
29 0
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何在SQL语句里使用CASE WHEN语句
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
17天前
|
SQL 存储 缓存
一条 SQL 查询语句是如何运行?
本文详细剖析了SQL语句在MySQL中的执行流程,涵盖客户端、Server层及存储引擎层。Server层包括连接器、查询缓存、分析器、优化器与执行器等核心组件。连接器管理连接与权限校验,查询缓存加速查询,分析器负责词法与语法分析,优化器提升SQL性能,执行器调用存储引擎接口。了解这些流程有助于深入理解MySQL内部机制及其优化原理。
19 0
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之未保存的ODPS SQL语句该如何找回
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
SQL 弹性计算 资源调度
云服务器 ECS产品使用问题之bin/spark-sql --master yarn如何进行集群模式运行
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
2月前
|
SQL DataWorks 安全
DataWorks产品使用合集之怎么跨项目移动sql任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之sql查询如何导出全量数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
SQL 数据库
实时数仓 Hologres产品使用合集之如何找回之前的SQL查询代码
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
1月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
3月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
85 13

相关产品

  • 云原生数据库 PolarDB