Window function lack memory track caused tidb oom
- Dominant language
- Go
- Stars
- 40.5k
- Forks
- 6.2k
- PR merge metrics
- PR metrics pending
Description
## Enhancement
```
stats: event_73836f0a7f9b2161cb78d5295dfc21c7:pseudo,usersummary_73836f0a7f9b2161cb78d5295dfc21c7:pseudo
conn: 8885118279685768069
user: root
database: wicle
table_ids: [99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99]
txn_start_ts: 441605002263003139
mem_max: 479791200 Bytes (457.6 MB)
sql: explain analyze with event as ( select e . user_hash , e . user_id , e . sync_date , e . event_hash , e . dimension , e . live from event_73836f0a7f9b2161cb78d5295dfc21c7 e where sync_date between ? and ? and ( event_name = ? ) ) , users as ( select user_hash , any_value ( user_id ) as user_id , max ( sync_date ) as last_sync_date , count ( event_hash ) as matched_event_num , json_arrayagg ( event_hash ) over ( order by sync_date desc ) from event group by user_hash order by last_sync_date desc limit ? offset ? ) select users . * , json_object ( ? , usersummary . visit_count_total , ? , usersummary . pv_count_total , ? , usersummary . click_count_total , ? , usersummary . first_referrer , ? , usersummary . last_device_type , ? , case when usersummary . visit_count_total = ? then ? when usersummary . visit_count_total < ? then ? else ? end ) as dimension from users left outer join usersummary_73836f0a7f9b2161cb78d5295dfc21c7 usersummary using ( user_hash ) order by last_sync_date desc
tidb_mem_oom_action: CANCEL
tidb_server_memory_limit: 22814326720
tidb_mem_quota_query: 1073741824
tidb_analyze_version: 2
tidb_enable_rate_limit_action: false
current_analyze_plan: |id|estRows|task|access object|operator info|
|Projection_454|18.75|root||wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash, Column#237, Column#235, Column#236, Column#239, json_object(visit_count, cast(wicle.usersummary_73836f0a7f9b2161cb78d5295dfc21c7.visit_count_total, json BINARY), pv_count, cast(wicle.usersummary_73836f0a7f9b2161cb78d5295dfc21c7.pv_count_total, json BINARY), click_count, cast(wicle.usersummary_73836f0a7f9b2161cb78d5295dfc21c7.click_count_total, json BINARY), referrer, cast(wicle.usersummary_73836f0a7f9b2161cb78d5295dfc21c7.first_referrer, json BINARY), device_type, cast(wicle.usersummary_73836f0a7f9b2161cb78d5295dfc21c7.last_device_type, json BINARY), retention_group, cast(case(eq(wicle.usersummary_73836f0a7f9b2161cb78d5295dfc21c7.visit_count_total, 1), new, lt(wicle.usersummary_73836f0a7f9b2161cb78d5295dfc21c7.visit_count_total, 5), revisit, retained), json BINARY))->Column#294|
|└─IndexHashJoin_461|18.75|root||left outer join, inner:IndexLookUp_458, outer key:wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash, inner key:wicle.usersummary_73836f0a7f9b2161cb78d5295dfc21c7.user_hash, equal cond:eq(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash, wicle.usersummary_73836f0a7f9b2161cb78d5295dfc21c7.user_hash)|
| ├─TopN_469(Build)|15.00|root||Column#235:desc, offset:0, count:15|
| │ └─Window_97|72.78|root||json_arrayagg(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.event_hash)->Column#239 over(order by wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date desc range between unbounded preceding and current row)|
| │ └─Sort_449|72.78|root||wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date:desc|
| │ └─Projection_99|72.78|root||wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash, any_value(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_id)->Column#237, Column#235, Column#236, wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.event_hash, wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date|
| │ └─HashAgg_102|72.78|root||group by:wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash, funcs:max(Column#298)->Column#235, funcs:count(Column#299)->Column#236, funcs:firstrow(Column#300)->wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash, funcs:firstrow(Column#301)->wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_id, funcs:firstrow(Column#302)->wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date, funcs:firstrow(Column#303)->wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.event_hash|
| │ └─PartitionUnion_104|72.78|root|||
| │ ├─HashAgg_108|1.46|root||group by:wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash, funcs:max(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date)->Column#298, funcs:count(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.event_hash)->Column#299, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash)->Column#300, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_id)->Column#301, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date)->Column#302, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.event_hash)->Column#303, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash)->wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash|
| │ │ └─TableReader_123|1.83|root||data:Selection_122|
| │ │ └─Selection_122|1.83|cop[tiflash]||eq(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.event_name, "view"), ge(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date, 2023-05-04 00:00:00.000000), le(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date, 2023-05-20 23:59:59.999000)|
| │ │ └─TableFullScan_121|73011.00|cop[tiflash]|table:e, partition:P_LT_2023-05-05|keep order:false, stats:pseudo|
| │ ├─HashAgg_128|1.46|root||group by:wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash, funcs:max(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date)->Column#298, funcs:count(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.event_hash)->Column#299, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash)->Column#300, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_id)->Column#301, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.sync_date)->Column#302, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.event_hash)->Column#303, funcs:firstrow(wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash)->wicle.event_73836f0a7f9b2161cb78d5295dfc21c7.user_hash|
| │ │ └─TableReader_143|1.83|root||data:Selection_142|
```
[heap2023-05-20T13_34_47Z.zip](https://github.com/pingcap/tidb/files/11555760/heap2023-05-20T13_34_47Z.zip)


Contributor guide
Assessment
This issue has not been assessed yet.