问题描述
我想优化以下查询
选择t.merchant_id,
t.品牌标识,
t.交易类型,
t.trns_currency_code,
COUNT (*) AS total_no_tx,
SUM (t.mv_is_trnx_approved) AS approved_no_tx,
COUNT (t.mv_is_trnx_approved) AS count_approved_trnx,
SUM (t.mv_total_sales) AS total_sales,
COUNT (t.mv_total_sales) AS count_total_sales,
TRUNC (FROM_TZ (CAST (t.order_date作为时间戳),'GMT') 在时区m.时区) 作为交易日期
来自dmart.trxns t,mdb.merchant m
其中t.merchant_id = m.merchant_id
按t.merchant_id分组,
t.品牌标识,
t.交易类型,
t.trns_currency_code,
TRUNC (FROM_TZ (CAST (t.order_date作为时间戳),'GMT') 在时区m.时区)
问题是这两个表都有数百万条记录,计数和总和需要大量时间来执行。我已经在mv_is_trnx_approved和mv_total_sales上创建了索引。请有其他方法。
选择t.merchant_id,
t.品牌标识,
t.交易类型,
t.trns_currency_code,
COUNT (*) AS total_no_tx,
SUM (t.mv_is_trnx_approved) AS approved_no_tx,
COUNT (t.mv_is_trnx_approved) AS count_approved_trnx,
SUM (t.mv_total_sales) AS total_sales,
COUNT (t.mv_total_sales) AS count_total_sales,
TRUNC (FROM_TZ (CAST (t.order_date作为时间戳),'GMT') 在时区m.时区) 作为交易日期
来自dmart.trxns t,mdb.merchant m
其中t.merchant_id = m.merchant_id
按t.merchant_id分组,
t.品牌标识,
t.交易类型,
t.trns_currency_code,
TRUNC (FROM_TZ (CAST (t.order_date作为时间戳),'GMT') 在时区m.时区)
问题是这两个表都有数百万条记录,计数和总和需要大量时间来执行。我已经在mv_is_trnx_approved和mv_total_sales上创建了索引。请有其他方法。
专家解答
“问题是两个表都有数百万条记录” 与
a) 这似乎是一个标准的父/子关系 (即,每个txn都会有一个商人)
b) 除了连接之外,没有其他标准
c)the absence of any other information
你最好的选择是probably哈希连接和索引几乎没有好处。
所以你可以试试as a first step提示:
使用哈希 (t) 前导 (m t) 满 (m) 满 (t)
如果这给了你你想要的性能,然后看看为什么优化器没有自动做到这一点 (糟糕的统计数据等)。
如果没有,则进行跟踪,并查看丢失的时间-您可能还有其他问题 (存储速度慢,cpu不足) 等
a) 这似乎是一个标准的父/子关系 (即,每个txn都会有一个商人)
b) 除了连接之外,没有其他标准
c)the absence of any other information
你最好的选择是probably哈希连接和索引几乎没有好处。
所以你可以试试as a first step提示:
使用哈希 (t) 前导 (m t) 满 (m) 满 (t)
如果这给了你你想要的性能,然后看看为什么优化器没有自动做到这一点 (糟糕的统计数据等)。
如果没有,则进行跟踪,并查看丢失的时间-您可能还有其他问题 (存储速度慢,cpu不足) 等
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
488次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
469次阅读
2025-04-15 17:24:06
墨天轮个人数说知识点合集
JiekeXu
400次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
390次阅读
2025-04-08 09:12:48
Oracle SQL 执行计划分析与优化指南
Digital Observer
366次阅读
2025-04-01 11:08:44
Oracle 19c RAC更换IP实战,运维必看!
szrsu
332次阅读
2025-04-08 23:57:08
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
312次阅读
2025-04-15 14:48:05
oracle定时任务常用攻略
virvle
312次阅读
2025-03-25 16:05:19
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
308次阅读
2025-03-24 09:42:53
Oracle SQL Profile:优化查询性能的神奇“魔法棒”
JiekeXu
284次阅读
2025-03-29 00:02:36