query-optimization 相关问题

标签指的是如何使查询运行得更快。其中一些问题可能属于DBA.stackexchange.com,特别是如果它们涉及重建索引,查询计划等。请使用其他标记来指定您的查询语言。默认情况下,假定为SQL。

HANA SQL 连接替代 CROSS APPLY / LATERAL

我有 Microsoft SQL Server 背景,经常使用 CROSS APPLY 和 CTE(公用表表达式)等功能来编写查询。我目前正在尝试在 SAP HANA 中编写查询...

回答 3 投票 0

Clickhouse:使用 CTE 比较两个查询的性能

我有2个疑问如下: 查询1: 和 ( 选择 master_product_id 来自产品报告 在哪里 零售商 ID = 1000 AND (branch_id IN (1000)) 并且产品_master_i...

回答 1 投票 0

如果我连接的列具有不同的数据类型,如何将两个表连接在一起?

我对 SQL 和 ClickHouse 尤其是新手。我正在尝试根据客户 ID 连接 2 个表。问题是我要连接的两个表中的数据类型不同。左表的第...

回答 1 投票 0

如何通过 SQL 获取动态生成的数据透视?

输入 这是我已有的桌子。 Date 和 State 列一起构成复合主键。假设我们有来自所有 50 个州的几个月的每日数据。 我想要的是 旋转式 v...

回答 1 投票 0

在MySQL中,复合索引的最左边前缀是否与非复合索引一样性能?

MySQL 的文档说: 如果表具有多列索引,则优化器可以使用索引的任何最左边的前缀来查找行。例如,如果 (

回答 1 投票 0

子查询性能中的 SELECT *

我想知道的是,在子查询中执行 SELECT * 是否会被数据库引擎优化掉?下面的两个代码片段的性能是否相同? 从表中选择 A、B、C(从表中选择 *...

回答 1 投票 0

为什么查询执行计划中没有使用索引?

简单总结一下我遇到的问题,就是索引在查询中不能正常工作,这只是数据库的差异。 我目前正在使用两个数据库。为了方便起见,我们...

回答 1 投票 0

Oracle 为新创建的索引提供了错误的统计信息

我使用的是oracle 19c 我有一个包含大约 50M 记录的表 我有以下查询 选择 /*+ Gather_plan_statistics */ id from MY_TABLE mytable WHERE mytable.STARTDATE <= to_da...

回答 1 投票 0

优化 SQL 查询流程

我想看看在雪花中编写 SQL 的最有效方法是什么。以下是问题陈述。 包含事件数据的表 A,其中有 1 列 X。表将具有重复的 X 值。 T...

回答 1 投票 0

MySQL 针对没有索引的表优化 SQL

Spring Batch的元数据表不会被自动清理, 于是我尝试手动清理(前提是清理过程中其他批次进程正常执行)。 当我

回答 1 投票 0

在包含 As 和 B 的表中,选择 B 全部与给定 B_criteria 列表关联的那些 As

给出以下表结构: 表A A 1 2 3 表AB A 乙 1 1 1 2 1 3 2 1 2 2 3 2 3 3 表B 乙 1 2 3 问题描述:给定一个b列表,我想查询那些a......

回答 1 投票 0

优化始终扫描全表的查询

我们的系统中有一个查询,该查询应该根据某些因素过滤报告 查询已建立索引,当使用解释时,它显示它使用索引,但行号是相同的...

回答 1 投票 0

优化 PostgreSQL 查询以将用户插入数据库

用例是这样的。 有一个注册端点,用户可以在该端点上提交他们的电子邮件和密码 必须一次创建 4 行并生成几个 id 桌子看起来像...

回答 1 投票 0

优化查询 - PostgreSQL - XPATH

我的查询(PostgreSQL)可以正常工作。 将 xml_test 作为 ( 选择 ' 我的查询(PostgreSQL)可以正常工作。 with xml_test as ( select '<!--Build-Version: 1.564-REVb37dd024a8-20220530T1418--><tns:Message xsi:schemaLocation="https://appprod.be/Trivia/documents/Docs/XSDs/v1/T013 T013_v1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="https://appprod.be/Trivia/documents/Docs/XSDs/v1/T013"> <Header> <Agent>90015299</Agent> <SocialFund>299</SocialFund> <MessageId>T013</MessageId> <Timestamp RequestDate="2022-06-16T23:20:00" ProcessDate="2022-06-16T23:25:20" ResponseDate="2022-06-16T23:25:20"/> <Reference NRK="6e6806740a6ea06d7ca6ae7b31edeb8e" Requestor="90010299"/> <Result>OK</Result> <ReturnCode>ResponseOnly</ReturnCode> </Header> <Body> <Request> <TransmissionMethod>BULK</TransmissionMethod> <SocialFundCode>299</SocialFundCode> <FileNumber>9913894</FileNumber> <FiscalYear>2020</FiscalYear> <FiscalHouseHolds> <FiscalHouseHold> <Beneficiary>66090999038</Beneficiary> <FiscalPartners> <FiscalPartner>65120999956</FiscalPartner> </FiscalPartners> </FiscalHouseHold> <FiscalHouseHold> <Beneficiary>66090999038</Beneficiary> <FiscalPartners> <FiscalPartner>65120999956</FiscalPartner> <FiscalPartner>94013099924</FiscalPartner> </FiscalPartners> </FiscalHouseHold> </FiscalHouseHolds> </Request> </Body> </tns:Message>' as x ) select file_number , (xpath('//Beneficiary/text()', fiscal_household::xml))[1]::text benef , array_to_string( (xpath('//FiscalPartner/text()', fiscal_household::xml)), ' - ') fiscal_partners from ( select (xpath('/tnsMessage/Body/Request/FileNumber/text()', replace(x, ':','')::xml))[1]::text file_number , unnest(xpath('/tnsMessage/Body/Request/FiscalHouseHolds/FiscalHouseHold', replace(x, ':','')::xml))::text fiscal_household from xml_test ) temp ; 它给了我正确的结果,就是这些。 文件编号 好处 财政合作伙伴 9913894 66090999038 65120999956 9913894 66090999038 65120999956 - 94013099924 您可以看到我必须经历一个中间步骤并执行两次 SELECT。是否可以取消这个中间步骤?和/或优化这个查询? 感谢所有的灵感。 将财政家庭提取为笛卡尔积(即无约束连接)子查询。这实际上充当行级函数,将表达式附加到源输出。 请注意,我添加了一个新的第三个受益人以及新的fiscal_partners,以证明参照完整性得到了维护。 with xml_test as ( select '<!--Build-Version: 1.564-REVb37dd024a8-20220530T1418--><tns:Message xsi:schemaLocation="https://appprod.be/Trivia/documents/Docs/XSDs/v1/T013 T013_v1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="https://appprod.be/Trivia/documents/Docs/XSDs/v1/T013"> <Header> <Agent>90015299</Agent> <SocialFund>299</SocialFund> <MessageId>T013</MessageId> <Timestamp RequestDate="2022-06-16T23:20:00" ProcessDate="2022-06-16T23:25:20" ResponseDate="2022-06-16T23:25:20"/> <Reference NRK="6e6806740a6ea06d7ca6ae7b31edeb8e" Requestor="90010299"/> <Result>OK</Result> <ReturnCode>ResponseOnly</ReturnCode> </Header> <Body> <Request> <TransmissionMethod>BULK</TransmissionMethod> <SocialFundCode>299</SocialFundCode> <FileNumber>9913894</FileNumber> <FiscalYear>2020</FiscalYear> <FiscalHouseHolds> <FiscalHouseHold> <Beneficiary>66090999038</Beneficiary> <FiscalPartners> <FiscalPartner>65120999956</FiscalPartner> </FiscalPartners> </FiscalHouseHold> <FiscalHouseHold> <Beneficiary>66090999038</Beneficiary> <FiscalPartners> <FiscalPartner>65120999956</FiscalPartner> <FiscalPartner>94013099924</FiscalPartner> </FiscalPartners> </FiscalHouseHold> <FiscalHouseHold> <Beneficiary>66090999040</Beneficiary> <FiscalPartners> <FiscalPartner>65120990056</FiscalPartner> <FiscalPartner>94013000924</FiscalPartner> </FiscalPartners> </FiscalHouseHold> </FiscalHouseHolds> </Request> </Body> </tns:Message>' as x ) SELECT (xpath('/tnsMessage/Body/Request/FileNumber/text()', replace(x, ':','')::xml))[1]::text file_number , (xpath('//Beneficiary/text()', fiscal_household::xml))[1]::text AS benef , array_to_string( (xpath('//FiscalPartner/text()', fiscal_household::xml)), ' - ') fiscal_partners FROM xml_test, (SELECT unnest(xpath('/tnsMessage/Body/Request/FiscalHouseHolds/FiscalHouseHold', replace(x, ':','')::xml))::text AS fiscal_household FROM xml_test) A ; 产量 文件编号 好处 财政合作伙伴 9913894 66090999038 65120999956 9913894 66090999038 65120999956 - 94013099924 9913894 66090999040 65120990056 - 94013000924 需要注意的是,仅仅因为 2 阶段查询与 3 阶段查询在语法上可能更清晰,查询优化器最终可能仍会构建相同的计划。

回答 1 投票 0

查询3张表,返回32条记录,耗时11秒。如何改进查询?

我正在使用 PHP 和 WordPress 进行数据库查询。 在下面的查询中,返回结果的时间太长。 (总共 32 个,查询耗时 11.4666 秒。) 数据库服务器返回超时

回答 1 投票 0

MySQL 查询结果获取时间远远超过执行时间,如何解决这个问题?

我使用MySQL 8.0.27-18,以InnoDB为引擎。我有一个巨大的数据库,其中有几个表包含 1 亿多行。例如:TABLE_A 具有 110M 行,TABLE_B 具有 300M+ 行。有时我...

回答 1 投票 0

优化MariaDB简单查询以及解释json格式语句中的实际成本是什么

我有2个问题: 有什么方法可以优化或改写这个查询以便我能够执行它吗?我等了两天多,查询仍在执行...... “成本如何&...

回答 1 投票 0

在连接表上排序真的很慢

我有一个与 job_events 表左连接的 jobs 表。 job_events 表有一个关于 type 和 jobId 的索引。 当我按 jobs.id 排序查询时,结果会在 200 毫秒内显示。当我订购时...

回答 1 投票 0

oracle综合指数最佳实践

我有一个表计算(id,客户,日期,类型,金额,公司,销售额...) 我有一个关于 date= 的 where 条件的查询?并输入=? 列类型只能有 3 个值:A、B 和 C(占 85% 的值...

回答 1 投票 0

Mysql 8 中磁盘 IO 达到 100%

我在 Centos 7 和 Centos 8 上使用 MySQL 8,并且在 27GB 表上运行一个简单的计数语句。通常,在 MySQL 5.7 中大约需要 10 秒,但在 MySQL 8 中,大约需要 10 分钟。我...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.