-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Memory usage with multiple JOINs #4904
Description
select version();
SELECT version()
┌─version()─┐
│ 19.4.1.1 │
└───────────┘
DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Memory limit (for query) exceeded: would use 30.00 GiB (attempt to allocate chunk of 262144 bytes), maximum: 30.00 GiB: (while reading column ID): (while reading from part /var/lib/clickhouse/data/ods/SaleOrders/all_45_50_1/ from mark 20 with max_rows_to_read = 24576).
0 rows in set. Elapsed: 7.413 sec. Processed 18.68 million rows, 15.03 GB (2.52 million rows/s., 2.03 GB/s.)
select so.OrderCreateTime,
c.CityName,
buser.BizUserName,
sku.FirstDisPlayCategory,
sku.Brand,
soi.ProductName,
sku.UnitPriceClass,
so.OrderType,
soi.ReduceCouponAmount
from SaleOrders so
inner join SaleOrderItem soi ON so.ID = soi.OrderID
inner join City c ON so.CityID=c.ID
inner join bizuser buser ON so.BizUserID=buser.ID
inner join ProductSKUSpe sku ON sku.ProductSKUID=soi.ProductSKUID
where so.OrderCreateTime >= '2019-01-01 00:00:00'
AND so.OrderCreateTime <= '2019-01-31 00:00:00' AND so.OrderCompleteTime >= '2019-01-01 00:00:00'
AND so.OrderCompleteTime <= '2019-01-31 00:00:00' AND so.CityID IN(100,402,404) AND so.StatusID IN (7,10)
ORDER BY so.OrderCreateTime,c.CityName
LIMIT 30, 30;
--Questions:
no matter how much memory increased,it appreas like aboe.how avoid it or set right memory. The dataset i store in clickhouse 36G, Original data size is about 225G.