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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
1月前
|
XML SQL 数据格式
XML动态sql查询当前时间之前的信息报错
XML动态sql查询当前时间之前的信息报错
42 2
|
19天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之新建项目的元数据的sql报错,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
19天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之使用sql查询报错无权限,是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之遇到慢SQL问题,该如何解决
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
2月前
|
SQL 弹性计算 资源调度
云服务器 ECS产品使用问题之bin/spark-sql --master yarn如何进行集群模式运行
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
13天前
|
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
|
19天前
|
SQL DataWorks 大数据
DataWorks操作报错合集之SQL代码行数过长产生报错,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
19天前
|
SQL DataWorks 数据可视化
DataWorks操作报错合集之使用sql查询报错:系统异常,是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之遇到SQL语法错误,该如何排查
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
2月前
|
Kubernetes 关系型数据库 分布式数据库
PolarDB产品使用问题之使用PXD tryout启动环境时遇到报错,是什么原因
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。

相关产品

  • 云原生数据库 PolarDB
  • 下一篇
    DDNS