为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
dm.txt
能否贴一下 TSHARECURRENTS 和 TCONFIRM 这两张表上现有索引的DDL语句么?
这块过滤行不太好,根据业务逻辑改成1年尼?
SELECT 0 AS f_lastcustcount,
0 as F_LASTACCOCOUNT,
0 AS f_tercustcount,
COUNT(DISTINCT c_fundacco) AS f_atercustcount
FROM tconfirm a
WHERE a.c_businflag = '39'
AND a.d_date <= to_date('2023-03-31 00:00:00','yyyy-mm-dd hh24:mi:ss')
AND a.c_status = '1'
8.1.3.26版本以上开启ini参数USE_DHASH_FLAG=3,并将 count(distinct)部分改写成group方式实现
原sql:
SELECT 0 AS f_lastcustcount,
0 as F_LASTACCOCOUNT,
0 AS f_tercustcount,
COUNT(DISTINCT c_fundacco) AS f_atercustcount
FROM tconfirm a
WHERE a.c_businflag = '39'
AND a.d_date <= to_date('2023-03-31 00:00:00','yyyy-mm-dd hh24:mi:ss')
AND a.c_status = '1'
改写后sql:
SELECT 0 AS f_lastcustcount,
0 as F_LASTACCOCOUNT,
0 AS f_tercustcount,
COUNT(0) AS f_atercustcount
from (
select c_fundacco
FROM tconfirm a
WHERE a.c_businflag = '39'
AND a.d_date <= to_date('2023-03-31 00:00:00','yyyy-mm-dd hh24:mi:ss')
AND a.c_status = '1'
group by c_fundacco
)
根据查询条件,分别创建联合索引。