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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
这样的SQL执行为什么不会报错?optimizer_trace深度历险
【10月更文挑战第12天】本文探讨了一条看似错误但实际上能成功执行的SQL语句,通过开启MySQL的优化器追踪功能,详细分析了SQL的执行过程,揭示了子查询被优化器解析为连接操作的原因,最终解释了为何该SQL不会报错。文章不仅增进了对SQL优化机制的理解,也展示了如何利用优化器追踪解决实际问题。
|
3月前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
104 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
3月前
|
SQL 数据库
SQL解析相关报错
SQL解析相关报错
46 5
|
4月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之新建项目的元数据的sql报错,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
SQL 关系型数据库 MySQL
|
3月前
|
关系型数据库 MySQL Nacos
nacos启动报错 load derby-schema.sql error
这篇文章描述了作者在使用Nacos时遇到的启动错误,错误提示为加载derby-schema.sql失败,作者通过将数据库从Derby更换为MySQL解决了问题。
nacos启动报错 load derby-schema.sql error
|
3月前
|
关系型数据库 MySQL Java
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
39 1
|
3月前
|
并行计算 关系型数据库 分布式数据库
朗坤智慧科技「LiEMS企业管理信息系统」通过PolarDB产品生态集成认证!
近日,朗坤智慧科技股份有限公司「LiEMS企业管理信息系统软件」通过PolarDB产品生态集成认证!
|
4月前
|
SQL Java 数据库连接
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
|
4月前
|
SQL DataWorks 大数据
DataWorks操作报错合集之SQL代码行数过长产生报错,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。

相关产品

  • 云原生数据库 PolarDB