外部表数据查询where用到LAST_DAY不生效

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】问题详细描述
我昨天遇到一个问题,就是在访问外部表的时候,里面有一个日期字段,我好热where rq=LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) 这种写法,在源数据库那就没有where条件,运行很慢,但要是 where rq=date_add(CURRENT_DATE, INTERVAL -1 DAY) 这样写,在源数据库进程里就能用上where ,就运行很快,这是怎么回事呢

1、这个里面带有LAST_DAY 这个就执行的时候,源数据进程是全表查询**(执行8分钟)**
EXPLAIN ANALYZE SELECT RQ,FDBH,SPFL,HSFS,XSJE,ML,JYBS,SYS_DATE,ZHML,YHJE
FROM OYJT_ERP_HANA_EXTERNAL.EXTERNAL_REPORT_SPFL
where rq=LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
;

2、这个里面没有LAST_DAY 这个在源数据进程里就是查询一天的数据**(执行766ms)**
EXPLAIN ANALYZE SELECT RQ,FDBH,SPFL,HSFS,XSJE,ML,JYBS,SYS_DATE,ZHML,YHJE
FROM OYJT_ERP_HANA_EXTERNAL.EXTERNAL_REPORT_SPFL
where rq=date_add(CURRENT_DATE, INTERVAL -13 DAY);
这个是另一个种写法,这个也很快,也是没有问题
EXPLAIN ANALYZE SELECT RQ,FDBH,SPFL,HSFS,XSJE,ML,JYBS,SYS_DATE,ZHML,YHJE
FROM OYJT_ERP_HANA_EXTERNAL.EXTERNAL_REPORT_SPFL
where rq=DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
;

image

下面的执行计划

1的执行计划为
e[0mSummarye[0m
e[0mQueryId: 36b5b08b-f01d-11f0-9f50-0050569337c8e[0m
e[0mVersion: 3.3.1-2b87854e[0m
e[0mState: Finishede[0m
e[0mTotalTime: 7m57se[0m
e[0mExecutionTime: 7m57s [Scan: 7m57s (99.89%), Network: 0ns (0.00%), ResultDeliverTime: 0ns (0.00%), ScheduleTime: 1s523ms (0.32%)]e[0m
e[0mCollectProfileTime: 8mse[0m
e[0mFrontendProfileMergeTime: 2.427mse[0m
e[0mQueryPeakMemoryUsage: 1.919 MB, QueryAllocatedMemoryUsage: 9.203 GBe[0m
e[0mTop Most Time-consuming Nodes:e[0m
e[1me[31m1. JDBC_SCAN (id=0) : 7m57s (99.96%)e[0m
e[0m2. SELECT (id=1) : 154.598ms (0.03%)e[0m
e[0m3. RESULT_SINK: 28.640ms (0.01%)e[0m
e[0mTop Most Memory-consuming Nodes:e[0m
e[0mNonDefaultVariables:e[0m
e[0mcbo_eq_base_type: decimal -> varchare[0m
e[0mcbo_push_down_topn_limit: 1000 -> 0e[0m
e[0mcharacter_set_results: utf8 -> NULLe[0m
e[0mconsistent_hash_virtual_number: 256 -> 128e[0m
e[0menable_adaptive_sink_dop: false -> truee[0m
e[0menable_async_profile: true -> falsee[0m
e[0menable_force_rule_based_mv_rewrite: true -> falsee[0m
e[0menable_iceberg_column_statistics: false -> truee[0m
e[0menable_profile: false -> truee[0m
e[0menable_rewrite_bitmap_union_to_bitamp_agg: true -> falsee[0m
e[0menable_scan_datacache: true -> falsee[0m
e[0mexec_mem_limit: 2147483648 -> 8589934592e[0m
e[0mfull_sort_late_materialization_v2: true -> falsee[0m
e[0mgroup_concat_max_len: 1024 -> 10485760e[0m
e[0minteractive_timeout: 3600 -> 86400e[0m
e[0mparallel_exchange_instance_num: -1 -> 16e[0m
e[0mparallel_fragment_exec_instance_num: 1 -> 16e[0m
e[0mquery_timeout: 300 -> 28800e[0m
e[0mspill_mem_limit_threshold: 0.8 -> 0.5e[0m
e[0mspill_operator_min_bytes: 52428800 -> 10485760e[0m
e[0msql_mode_v2: 32 -> 2097184e[0m
e[0msql_select_limit: 9223372036854775807 -> 11111111e[0m
e[0mwait_timeout: 28800 -> 86400e[0m
e[0mFragment 0e[0m
│ e[0mBackendNum: 1e[0m
│ e[0mInstancePeakMemoryUsage: 1.913 MB, InstanceAllocatedMemoryUsage: 9.203 GBe[0m
│ e[0mPrepareTime: 6.272mse[0m
└──e[0mRESULT_SINKe[0m
│ e[0mTotalTime: 28.640ms (0.01%) [CPUTime: 28.640ms]e[0m
│ e[0mOutputRows: 104.140K (104140)e[0m
│ e[0mSinkType: MYSQL_PROTOCALe[0m
└──e[0mSELECT (id=1) e[0m
│ e[0mEstimates: [row: 11111111, cpu: ?, memory: ?, network: ?, cost: 0.0]e[0m
│ e[0mTotalTime: 154.598ms (0.03%) [CPUTime: 154.598ms]e[0m
│ e[0mOutputRows: 104.140K (104140)e[0m
│ e[0mPredicates: [RQ = last_day(‘2025-12-13 00:00:00’)]e[0m
└──e[1me[31mJDBC_SCAN (id=0) e[0m
e[1me[31mEstimates: [row: 20000, cpu: ?, memory: ?, network: ?, cost: 0.0]e[0m
e[1me[31mTotalTime: 7m57s (99.96%) [CPUTime: 611.920ms, ScanTime: 7m57s]e[0m
e[1me[31mOutputRows: 71.701M (71700666)e[0m
e[1me[31mSubordinateOperators: e[0m
e[1me[31mLOCAL_EXCHANGE [Passthrough]e[0m
e[1me[31mDetail Timers: [ScanTime = IOTaskExecTime + IOTaskWaitTime]e[0m
e[1me[31mIOTaskExecTime: 7m56se[0m
e[1me[31mFillChunkTime: 2m39se[0m
e[1me[31mIOTime: 5m16se[0m
e[1me[31mIOTaskWaitTime: 423.009mse[0m
e[0m

2的执行计划为
e[0mSummarye[0m
e[0mQueryId: 5b842557-f01d-11f0-9f50-0050569337c8e[0m
e[0mVersion: 3.3.1-2b87854e[0m
e[0mState: Finishede[0m
e[0mTotalTime: 705mse[0m
e[0mExecutionTime: 627.559ms [Scan: 604.890ms (96.39%), Network: 0ns (0.00%), ResultDeliverTime: 0ns (0.00%), ScheduleTime: 2.125ms (0.34%)]e[0m
e[0mCollectProfileTime: 66mse[0m
e[0mFrontendProfileMergeTime: 18.942mse[0m
e[0mQueryPeakMemoryUsage: 1.803 MB, QueryAllocatedMemoryUsage: 14.598 MBe[0m
e[0mTop Most Time-consuming Nodes:e[0m
e[1me[31m1. JDBC_SCAN (id=0) : 629.308ms (94.86%)e[0m
e[0m2. RESULT_SINK: 34.113ms (5.14%)e[0m
e[0mTop Most Memory-consuming Nodes:e[0m
e[0mNonDefaultVariables:e[0m
e[0mcbo_eq_base_type: decimal -> varchare[0m
e[0mcbo_push_down_topn_limit: 1000 -> 0e[0m
e[0mcharacter_set_results: utf8 -> NULLe[0m
e[0mconsistent_hash_virtual_number: 256 -> 128e[0m
e[0menable_adaptive_sink_dop: false -> truee[0m
e[0menable_async_profile: true -> falsee[0m
e[0menable_force_rule_based_mv_rewrite: true -> falsee[0m
e[0menable_iceberg_column_statistics: false -> truee[0m
e[0menable_profile: false -> truee[0m
e[0menable_rewrite_bitmap_union_to_bitamp_agg: true -> falsee[0m
e[0menable_scan_datacache: true -> falsee[0m
e[0mexec_mem_limit: 2147483648 -> 8589934592e[0m
e[0mfull_sort_late_materialization_v2: true -> falsee[0m
e[0mgroup_concat_max_len: 1024 -> 10485760e[0m
e[0minteractive_timeout: 3600 -> 86400e[0m
e[0mparallel_exchange_instance_num: -1 -> 16e[0m
e[0mparallel_fragment_exec_instance_num: 1 -> 16e[0m
e[0mquery_timeout: 300 -> 28800e[0m
e[0mspill_mem_limit_threshold: 0.8 -> 0.5e[0m
e[0mspill_operator_min_bytes: 52428800 -> 10485760e[0m
e[0msql_mode_v2: 32 -> 2097184e[0m
e[0mwait_timeout: 28800 -> 86400e[0m
e[0mFragment 0e[0m
│ e[0mBackendNum: 1e[0m
│ e[0mInstancePeakMemoryUsage: 1.796 MB, InstanceAllocatedMemoryUsage: 14.598 MBe[0m
│ e[0mPrepareTime: 2.348mse[0m
└──e[0mRESULT_SINKe[0m
│ e[0mTotalTime: 34.113ms (5.14%) [CPUTime: 34.113ms]e[0m
│ e[0mOutputRows: 104.140K (104140)e[0m
│ e[0mSinkType: MYSQL_PROTOCALe[0m
└──e[1me[31mJDBC_SCAN (id=0) e[0m
e[1me[31mEstimates: [row: 10000, cpu: ?, memory: ?, network: ?, cost: 0.0]e[0m
e[1me[31mTotalTime: 629.308ms (94.86%) [CPUTime: 24.417ms, ScanTime: 604.890ms]e[0m
e[1me[31mOutputRows: 104.140K (104140)e[0m
e[1me[31mSubordinateOperators: e[0m
e[1me[31mCHUNK_ACCUMULATEe[0m
e[1me[31mLOCAL_EXCHANGE [Passthrough]e[0m
e[1me[31mDetail Timers: [ScanTime = IOTaskExecTime + IOTaskWaitTime]e[0m
e[1me[31mIOTaskExecTime: 604.426mse[0m
e[1me[31mFillChunkTime: 231.263mse[0m
e[1me[31mIOTime: 328.754mse[0m
e[1me[31mIOTaskWaitTime: 464.304use[0m
e[0m

【背景】做过哪些操作?
我现在要从haha数据库里导一个表的数据表SR里,通过外部表的方式导入

【StarRocks版本】3.3.1-2b87854

【联系方式】13364308671

OYJT_ERP_HANA_EXTERNAL.EXTERNAL_REPORT_SPFL
的 有 ddl 看看吗? ,才能判断