ydb-platform / ydb

YDB is an open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions
https://ydb.tech
Apache License 2.0
4k stars 567 forks source link

Таймаут TPC-DS s10 q39 #10682

Open iddqdex opened 3 weeks ago

iddqdex commented 3 weeks ago

Случается иногда. Пример отчета https://proxy.sandbox.yandex-team.ru/7306814941/index.html#categories/f4eab76048f1849301c76786a5433630/3151dc75d44a6407/ Обращает на себя внимание разброс во времени выполнения попыток. Одна попытка заняла 8 секнуд, другая почти полчаса, на третью не осталось времени. Планы в отчете.

Hor911 commented 3 weeks ago

Iteration 0 (29:31):

┌─────────────────────────────────────────────────────────────┬────────┬───────────┬───────────┬───────────┬───────────┐
│ Operation                                                   │ A-Cpu  │ A-Rows    │ E-Cost    │ E-Rows    │ E-Size    │
├─────────────────────────────────────────────────────────────┼────────┼───────────┼───────────┼───────────┼───────────┤
│  -> ResultSet_1                                             │        │           │           │           │           │
│    -> Sort ()                                               │ 311617 │ 56        │           │           │           │
│      -> InnerJoin (MapJoin) (inv2.i_item_sk,inv2.w_warehous │        │           │ 5.316e+13 │ 3.544e+13 │ 4.576e+14 │
│ e_sk = inv1.i_item_sk,inv1.w_warehouse_sk)                  │        │           │           │           │           │

Iteration 1 (00:07):

┌──────────────────────────────────────────────────────────────┬───────┬───────────┬───────────┬───────────┬───────────┐
│ Operation                                                    │ A-Cpu │ A-Rows    │ E-Cost    │ E-Rows    │ E-Size    │
├──────────────────────────────────────────────────────────────┼───────┼───────────┼───────────┼───────────┼───────────┤
│  -> ResultSet_1                                              │       │           │           │           │           │
│    -> Sort ()                                                │ 8138  │ 56        │           │           │           │
│      -> InnerJoin (Grace) (inv2.i_item_sk,inv2.w_warehouse_s │       │           │ 5.316e+13 │ 3.544e+13 │ 5.256e+14 │
│ k = inv1.i_item_sk,inv1.w_warehouse_sk)                      │       │           │           │           │           │

Iteration 2 is like 0 (MapJoin) and was stopped by global test timeout

Statistics is the same

pavelvelikhov commented 3 weeks ago

Statistics is actually different between Iteration 2 and broken Iteration 3 Base table statistics differ in the orders of magnitude

On a closer look - Iteration 3 shows a plan on a different scale (s1 vs s10) @iddqdex

pavelvelikhov commented 2 weeks ago

Comparing Iteration 0 (29:31) and Iteration 1 (0:07):

Initial table statistics is the same for both plans, however the plans diverge in structure and types of joins... @pashandor789 can you take a look?

Hor911 commented 6 days ago

Fresh run https://nda.ya.ru/t/JUd_Z6uc79VdM5 God runs 0, 1 Bad run 2

Bunch of problems. In bad run:

Hor911 commented 6 days ago

tpc-ds-10-q39-good

Hor911 commented 6 days ago

tpc-ds-10-q39-bad

Hor911 commented 6 days ago
┌──────────────────────────────────────────────────────────────┬───────┬───────────┬───────────┬───────────┬───────────┐
│ Operation                                                    │ A-Cpu │ A-Rows    │ E-Cost    │ E-Rows    │ E-Size    │
├──────────────────────────────────────────────────────────────┼───────┼───────────┼───────────┼───────────┼───────────┤
│  -> ResultSet_1                                              │       │           │           │           │           │
│    -> Sort ()                                                │ 26425 │ 92        │           │           │           │
│      -> InnerJoin (Grace) (inv2.i_item_sk,inv2.w_warehouse_s │       │           │ 5.316e+13 │ 3.544e+13 │ 5.335e+14 │
│ k = inv1.i_item_sk,inv1.w_warehouse_sk)                      │       │           │           │           │           │
│        -> Aggregate (GroupBy: , Aggregation: {})             │ 13211 │ 23857085  │           │           │           │
│          -> InnerJoin (MapJoin) (inverntory.inv_item_sk = i_ │       │           │ 2.998e+08 │ 13311000  │ 2.004e+08 │
│ item_sk)                                                     │       │           │           │           │           │
│            -> InnerJoin (MapJoin) (inverntory.inv_warehouse_ │ 7963  │ 26520000  │ 2.596e+08 │ 13311000  │ 2.004e+08 │
│ sk = warehouse.w_warehouse_sk)                               │       │           │           │           │           │
│              -> InnerJoin (MapJoin) (inverntory.inv_date_sk  │ 5900  │ 26520000  │ 2.197e+08 │ 13311000  │ 2.004e+08 │
│ = date_dim.d_date_sk)                                        │       │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s1 │ 1979  │ 1.331e+08 │ 0         │ 1.331e+08 │ 2.004e+09 │
│ 0/inventory, Scan: Parallel, ReadRanges: ["inv_date_sk (-∞,  │       │           │           │           │           │
│ +∞)","inv_item_sk (-∞, +∞)","inv_warehouse_sk (-∞, +∞)"], Re │       │           │           │           │           │
│ adColumns: ["inv_date_sk","inv_item_sk","inv_quantity_on_han │       │           │           │           │           │
│ d","inv_warehouse_sk"])                                      │       │           │           │           │           │
│                -> Filter (d_year == 2001)                    │ 0     │ 365       │ 0         │ 7305      │ 94327     │
│                  -> TableFullScan (Table: dt64/column/tpcds/ │       │           │ 0         │ 73049     │ 943273    │
│ s10/date_dim, Scan: Parallel, ReadRanges: ["d_date_sk (-∞, + │       │           │           │           │           │
│ ∞)"], ReadColumns: ["d_date_sk","d_moy","d_year"])           │       │           │           │           │           │
│              -> TableFullScan (Table: dt64/column/tpcds/s10/ │ 0     │ 10        │ 0         │ 10        │ 4051      │
│ warehouse, Scan: Parallel, ReadRanges: ["w_warehouse_sk (-∞, │       │           │           │           │           │
│  +∞)"], ReadColumns: ["w_warehouse_name","w_warehouse_sk"])  │       │           │           │           │           │
│            -> TableFullScan (Table: dt64/column/tpcds/s10/it │ 1     │ 102000    │ 0         │ 102000    │ 930135    │
│ em, Scan: Parallel, ReadRanges: ["i_item_sk (-∞, +∞)"], Read │       │           │           │           │           │
│ Columns: ["i_item_sk"])                                      │       │           │           │           │           │
│        -> Aggregate (GroupBy: , Aggregation: {})             │ 13211 │ 23857085  │           │           │           │
│          -> InnerJoin (MapJoin) (inverntory.inv_item_sk = i_ │       │           │ 2.998e+08 │ 13311000  │ 2.004e+08 │
│ item_sk)                                                     │       │           │           │           │           │
│            -> InnerJoin (MapJoin) (inverntory.inv_warehouse_ │ 7963  │ 26520000  │ 2.596e+08 │ 13311000  │ 2.004e+08 │
│ sk = warehouse.w_warehouse_sk)                               │       │           │           │           │           │
│              -> InnerJoin (MapJoin) (inverntory.inv_date_sk  │ 5900  │ 26520000  │ 2.197e+08 │ 13311000  │ 2.004e+08 │
│ = date_dim.d_date_sk)                                        │       │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s1 │ 1979  │ 1.331e+08 │ 0         │ 1.331e+08 │ 2.004e+09 │
│ 0/inventory, Scan: Parallel, ReadRanges: ["inv_date_sk (-∞,  │       │           │           │           │           │
│ +∞)","inv_item_sk (-∞, +∞)","inv_warehouse_sk (-∞, +∞)"], Re │       │           │           │           │           │
│ adColumns: ["inv_date_sk","inv_item_sk","inv_quantity_on_han │       │           │           │           │           │
│ d","inv_warehouse_sk"])                                      │       │           │           │           │           │
│                -> Filter (d_year == 2001)                    │ 0     │ 365       │ 0         │ 7305      │ 94327     │
│                  -> TableFullScan (Table: dt64/column/tpcds/ │       │           │ 0         │ 73049     │ 943273    │
│ s10/date_dim, Scan: Parallel, ReadRanges: ["d_date_sk (-∞, + │       │           │           │           │           │
│ ∞)"], ReadColumns: ["d_date_sk","d_moy","d_year"])           │       │           │           │           │           │
│              -> TableFullScan (Table: dt64/column/tpcds/s10/ │ 0     │ 10        │ 0         │ 10        │ 4051      │
│ warehouse, Scan: Parallel, ReadRanges: ["w_warehouse_sk (-∞, │       │           │           │           │           │
│  +∞)"], ReadColumns: ["w_warehouse_name","w_warehouse_sk"])  │       │           │           │           │           │
│            -> TableFullScan (Table: dt64/column/tpcds/s10/it │ 1     │ 102000    │ 0         │ 102000    │ 930135    │
│ em, Scan: Parallel, ReadRanges: ["i_item_sk (-∞, +∞)"], Read │       │           │           │           │           │
│ Columns: ["i_item_sk"])                                      │       │           │           │           │           │
│  -> ResultSet_0                                              │       │           │           │           │           │
│    -> Sort ()                                                │ 26422 │ 2433      │           │           │           │
│      -> InnerJoin (Grace) (inv1.i_item_sk,inv1.w_warehouse_s │       │           │ 5.316e+13 │ 3.544e+13 │ 5.335e+14 │
│ k = inv2.i_item_sk,inv2.w_warehouse_sk)                      │       │           │           │           │           │
│        -> Aggregate (GroupBy: , Aggregation: {})             │ 13208 │ 23857085  │           │           │           │
│          -> InnerJoin (MapJoin) (inverntory.inv_item_sk = i_ │       │           │ 2.998e+08 │ 13311000  │ 2.004e+08 │
│ item_sk)                                                     │       │           │           │           │           │
│            -> InnerJoin (MapJoin) (inverntory.inv_warehouse_ │ 7865  │ 26520000  │ 2.596e+08 │ 13311000  │ 2.004e+08 │
│ sk = warehouse.w_warehouse_sk)                               │       │           │           │           │           │
│              -> InnerJoin (MapJoin) (inverntory.inv_date_sk  │ 5765  │ 26520000  │ 2.197e+08 │ 13311000  │ 2.004e+08 │
│ = date_dim.d_date_sk)                                        │       │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s1 │ 1952  │ 1.331e+08 │ 0         │ 1.331e+08 │ 2.004e+09 │
│ 0/inventory, Scan: Parallel, ReadRanges: ["inv_date_sk (-∞,  │       │           │           │           │           │
│ +∞)","inv_item_sk (-∞, +∞)","inv_warehouse_sk (-∞, +∞)"], Re │       │           │           │           │           │
│ adColumns: ["inv_date_sk","inv_item_sk","inv_quantity_on_han │       │           │           │           │           │
│ d","inv_warehouse_sk"])                                      │       │           │           │           │           │
│                -> Filter (d_year == 2001)                    │ 0     │ 365       │ 0         │ 7305      │ 94327     │
│                  -> TableFullScan (Table: dt64/column/tpcds/ │       │           │ 0         │ 73049     │ 943273    │
│ s10/date_dim, Scan: Parallel, ReadRanges: ["d_date_sk (-∞, + │       │           │           │           │           │
│ ∞)"], ReadColumns: ["d_date_sk","d_moy","d_year"])           │       │           │           │           │           │
│              -> TableFullScan (Table: dt64/column/tpcds/s10/ │ 0     │ 10        │ 0         │ 10        │ 4051      │
│ warehouse, Scan: Parallel, ReadRanges: ["w_warehouse_sk (-∞, │       │           │           │           │           │
│  +∞)"], ReadColumns: ["w_warehouse_name","w_warehouse_sk"])  │       │           │           │           │           │
│            -> TableFullScan (Table: dt64/column/tpcds/s10/it │ 1     │ 102000    │ 0         │ 102000    │ 930135    │
│ em, Scan: Parallel, ReadRanges: ["i_item_sk (-∞, +∞)"], Read │       │           │           │           │           │
│ Columns: ["i_item_sk"])                                      │       │           │           │           │           │
│        -> Aggregate (GroupBy: , Aggregation: {})             │ 13208 │ 23857085  │           │           │           │
│          -> InnerJoin (MapJoin) (inverntory.inv_item_sk = i_ │       │           │ 2.998e+08 │ 13311000  │ 2.004e+08 │
│ item_sk)                                                     │       │           │           │           │           │
│            -> InnerJoin (MapJoin) (inverntory.inv_warehouse_ │ 7865  │ 26520000  │ 2.596e+08 │ 13311000  │ 2.004e+08 │
│ sk = warehouse.w_warehouse_sk)                               │       │           │           │           │           │
│              -> InnerJoin (MapJoin) (inverntory.inv_date_sk  │ 5765  │ 26520000  │ 2.197e+08 │ 13311000  │ 2.004e+08 │
│ = date_dim.d_date_sk)                                        │       │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s1 │ 1952  │ 1.331e+08 │ 0         │ 1.331e+08 │ 2.004e+09 │
│ 0/inventory, Scan: Parallel, ReadRanges: ["inv_date_sk (-∞,  │       │           │           │           │           │
│ +∞)","inv_item_sk (-∞, +∞)","inv_warehouse_sk (-∞, +∞)"], Re │       │           │           │           │           │
│ adColumns: ["inv_date_sk","inv_item_sk","inv_quantity_on_han │       │           │           │           │           │
│ d","inv_warehouse_sk"])                                      │       │           │           │           │           │
│                -> Filter (d_year == 2001)                    │ 0     │ 365       │ 0         │ 7305      │ 94327     │
│                  -> TableFullScan (Table: dt64/column/tpcds/ │       │           │ 0         │ 73049     │ 943273    │
│ s10/date_dim, Scan: Parallel, ReadRanges: ["d_date_sk (-∞, + │       │           │           │           │           │
│ ∞)"], ReadColumns: ["d_date_sk","d_moy","d_year"])           │       │           │           │           │           │
│              -> TableFullScan (Table: dt64/column/tpcds/s10/ │ 0     │ 10        │ 0         │ 10        │ 4051      │
│ warehouse, Scan: Parallel, ReadRanges: ["w_warehouse_sk (-∞, │       │           │           │           │           │
│  +∞)"], ReadColumns: ["w_warehouse_name","w_warehouse_sk"])  │       │           │           │           │           │
│            -> TableFullScan (Table: dt64/column/tpcds/s10/it │ 1     │ 102000    │ 0         │ 102000    │ 930135    │
│ em, Scan: Parallel, ReadRanges: ["i_item_sk (-∞, +∞)"], Read │       │           │           │           │           │
│ Columns: ["i_item_sk"])                                      │       │           │           │           │           │
└──────────────────────────────────────────────────────────────┴───────┴───────────┴───────────┴───────────┴───────────┘
Hor911 commented 6 days ago
┌─────────────────────────────────────────────────────────────┬────────┬───────────┬───────────┬───────────┬───────────┐
│ Operation                                                   │ A-Cpu  │ A-Rows    │ E-Cost    │ E-Rows    │ E-Size    │
├─────────────────────────────────────────────────────────────┼────────┼───────────┼───────────┼───────────┼───────────┤
│  -> ResultSet_1                                             │        │           │           │           │           │
│    -> Sort ()                                               │ 266378 │           │           │           │           │
│      -> InnerJoin (MapJoin) (inv2.i_item_sk,inv2.w_warehous │        │           │ 5.316e+13 │ 3.544e+13 │ 4.576e+14 │
│ e_sk = inv1.i_item_sk,inv1.w_warehouse_sk)                  │        │           │           │           │           │
│        -> Aggregate (GroupBy: , Aggregation: {})            │ 133184 │           │           │           │           │
│          -> InnerJoin (MapJoin) (date_dim.d_date_sk = inver │        │           │ 1.338e+09 │ 13311000  │ 1.719e+08 │
│ ntory.inv_date_sk)                                          │        │           │           │           │           │
│            -> Filter (d_year == 2001)                       │ 0      │ 365       │ 0         │ 7305      │ 94327     │
│              -> TableFullScan (Table: dt64/column/tpcds/s10 │        │           │ 0         │ 73049     │ 943273    │
│ /date_dim, Scan: Parallel, ReadRanges: ["d_date_sk (-∞, +∞) │        │           │           │           │           │
│ "], ReadColumns: ["d_date_sk","d_moy","d_year"])            │        │           │           │           │           │
│            -> InnerJoin (MapJoin) (warehouse.w_warehouse_sk │ 126721 │ 6486568   │ 9.587e+08 │ 1.331e+08 │ 5.393e+10 │
│  = inverntory.inv_warehouse_sk)                             │        │           │           │           │           │
│              -> TableFullScan (Table: dt64/column/tpcds/s10 │ 0      │ 10        │ 0         │ 10        │ 4051      │
│ /warehouse, Scan: Parallel, ReadRanges: ["w_warehouse_sk (- │        │           │           │           │           │
│ ∞, +∞)"], ReadColumns: ["w_warehouse_name","w_warehouse_sk" │        │           │           │           │           │
│ ])                                                          │        │           │           │           │           │
│              -> InnerJoin (MapJoin) (inverntory.inv_item_sk │ 9522   │ 1.331e+08 │ 3.996e+08 │ 1.331e+08 │ 2.004e+09 │
│  = i_item_sk)                                               │        │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s │ 2072   │ 1.331e+08 │ 0         │ 1.331e+08 │ 2.004e+09 │
│ 10/inventory, Scan: Parallel, ReadRanges: ["inv_date_sk (-∞ │        │           │           │           │           │
│ , +∞)","inv_item_sk (-∞, +∞)","inv_warehouse_sk (-∞, +∞)"], │        │           │           │           │           │
│  ReadColumns: ["inv_date_sk","inv_item_sk","inv_quantity_on │        │           │           │           │           │
│ _hand","inv_warehouse_sk"])                                 │        │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s │ 1      │ 102000    │ 0         │ 102000    │ 930135    │
│ 10/item, Scan: Parallel, ReadRanges: ["i_item_sk (-∞, +∞)"] │        │           │           │           │           │
│ , ReadColumns: ["i_item_sk"])                               │        │           │           │           │           │
│        -> Aggregate (GroupBy: , Aggregation: {})            │ 133184 │           │           │           │           │
│          -> InnerJoin (MapJoin) (date_dim.d_date_sk = inver │        │           │ 1.338e+09 │ 13311000  │ 1.719e+08 │
│ ntory.inv_date_sk)                                          │        │           │           │           │           │
│            -> Filter (d_year == 2001)                       │ 0      │ 365       │ 0         │ 7305      │ 94327     │
│              -> TableFullScan (Table: dt64/column/tpcds/s10 │        │           │ 0         │ 73049     │ 943273    │
│ /date_dim, Scan: Parallel, ReadRanges: ["d_date_sk (-∞, +∞) │        │           │           │           │           │
│ "], ReadColumns: ["d_date_sk","d_moy","d_year"])            │        │           │           │           │           │
│            -> InnerJoin (MapJoin) (warehouse.w_warehouse_sk │ 126721 │ 6486568   │ 9.587e+08 │ 1.331e+08 │ 5.393e+10 │
│  = inverntory.inv_warehouse_sk)                             │        │           │           │           │           │
│              -> TableFullScan (Table: dt64/column/tpcds/s10 │ 0      │ 10        │ 0         │ 10        │ 4051      │
│ /warehouse, Scan: Parallel, ReadRanges: ["w_warehouse_sk (- │        │           │           │           │           │
│ ∞, +∞)"], ReadColumns: ["w_warehouse_name","w_warehouse_sk" │        │           │           │           │           │
│ ])                                                          │        │           │           │           │           │
│              -> InnerJoin (MapJoin) (inverntory.inv_item_sk │ 9522   │ 1.331e+08 │ 3.996e+08 │ 1.331e+08 │ 2.004e+09 │
│  = i_item_sk)                                               │        │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s │ 2072   │ 1.331e+08 │ 0         │ 1.331e+08 │ 2.004e+09 │
│ 10/inventory, Scan: Parallel, ReadRanges: ["inv_date_sk (-∞ │        │           │           │           │           │
│ , +∞)","inv_item_sk (-∞, +∞)","inv_warehouse_sk (-∞, +∞)"], │        │           │           │           │           │
│  ReadColumns: ["inv_date_sk","inv_item_sk","inv_quantity_on │        │           │           │           │           │
│ _hand","inv_warehouse_sk"])                                 │        │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s │ 1      │ 102000    │ 0         │ 102000    │ 930135    │
│ 10/item, Scan: Parallel, ReadRanges: ["i_item_sk (-∞, +∞)"] │        │           │           │           │           │
│ , ReadColumns: ["i_item_sk"])                               │        │           │           │           │           │
│  -> ResultSet_0                                             │        │           │           │           │           │
│    -> Sort ()                                               │ 22575  │ 2433      │           │           │           │
│      -> InnerJoin (Grace) (inv1.i_item_sk,inv1.w_warehouse_ │        │           │ 5.316e+13 │ 3.544e+13 │ 5.335e+14 │
│ sk = inv2.i_item_sk,inv2.w_warehouse_sk)                    │        │           │           │           │           │
│        -> Aggregate (GroupBy: , Aggregation: {})            │ 11285  │ 23857085  │           │           │           │
│          -> InnerJoin (MapJoin) (inverntory.inv_item_sk = i │        │           │ 2.998e+08 │ 13311000  │ 2.004e+08 │
│ _item_sk)                                                   │        │           │           │           │           │
│            -> InnerJoin (MapJoin) (inverntory.inv_warehouse │ 7378   │ 26520000  │ 2.596e+08 │ 13311000  │ 2.004e+08 │
│ _sk = warehouse.w_warehouse_sk)                             │        │           │           │           │           │
│              -> InnerJoin (MapJoin) (inverntory.inv_date_sk │ 5459   │ 26520000  │ 2.197e+08 │ 13311000  │ 2.004e+08 │
│  = date_dim.d_date_sk)                                      │        │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s │ 1997   │ 1.331e+08 │ 0         │ 1.331e+08 │ 2.004e+09 │
│ 10/inventory, Scan: Parallel, ReadRanges: ["inv_date_sk (-∞ │        │           │           │           │           │
│ , +∞)","inv_item_sk (-∞, +∞)","inv_warehouse_sk (-∞, +∞)"], │        │           │           │           │           │
│  ReadColumns: ["inv_date_sk","inv_item_sk","inv_quantity_on │        │           │           │           │           │
│ _hand","inv_warehouse_sk"])                                 │        │           │           │           │           │
│                -> Filter (d_year == 2001)                   │ 0      │ 365       │ 0         │ 7305      │ 94327     │
│                  -> TableFullScan (Table: dt64/column/tpcds │        │           │ 0         │ 73049     │ 943273    │
│ /s10/date_dim, Scan: Parallel, ReadRanges: ["d_date_sk (-∞, │        │           │           │           │           │
│  +∞)"], ReadColumns: ["d_date_sk","d_moy","d_year"])        │        │           │           │           │           │
│              -> TableFullScan (Table: dt64/column/tpcds/s10 │ 0      │ 10        │ 0         │ 10        │ 4051      │
│ /warehouse, Scan: Parallel, ReadRanges: ["w_warehouse_sk (- │        │           │           │           │           │
│ ∞, +∞)"], ReadColumns: ["w_warehouse_name","w_warehouse_sk" │        │           │           │           │           │
│ ])                                                          │        │           │           │           │           │
│            -> TableFullScan (Table: dt64/column/tpcds/s10/i │ 1      │ 102000    │ 0         │ 102000    │ 930135    │
│ tem, Scan: Parallel, ReadRanges: ["i_item_sk (-∞, +∞)"], Re │        │           │           │           │           │
│ adColumns: ["i_item_sk"])                                   │        │           │           │           │           │
│        -> Aggregate (GroupBy: , Aggregation: {})            │ 11285  │ 23857085  │           │           │           │
│          -> InnerJoin (MapJoin) (inverntory.inv_item_sk = i │        │           │ 2.998e+08 │ 13311000  │ 2.004e+08 │
│ _item_sk)                                                   │        │           │           │           │           │
│            -> InnerJoin (MapJoin) (inverntory.inv_warehouse │ 7378   │ 26520000  │ 2.596e+08 │ 13311000  │ 2.004e+08 │
│ _sk = warehouse.w_warehouse_sk)                             │        │           │           │           │           │
│              -> InnerJoin (MapJoin) (inverntory.inv_date_sk │ 5459   │ 26520000  │ 2.197e+08 │ 13311000  │ 2.004e+08 │
│  = date_dim.d_date_sk)                                      │        │           │           │           │           │
│                -> TableFullScan (Table: dt64/column/tpcds/s │ 1997   │ 1.331e+08 │ 0         │ 1.331e+08 │ 2.004e+09 │
│ 10/inventory, Scan: Parallel, ReadRanges: ["inv_date_sk (-∞ │        │           │           │           │           │
│ , +∞)","inv_item_sk (-∞, +∞)","inv_warehouse_sk (-∞, +∞)"], │        │           │           │           │           │
│  ReadColumns: ["inv_date_sk","inv_item_sk","inv_quantity_on │        │           │           │           │           │
│ _hand","inv_warehouse_sk"])                                 │        │           │           │           │           │
│                -> Filter (d_year == 2001)                   │ 0      │ 365       │ 0         │ 7305      │ 94327     │
│                  -> TableFullScan (Table: dt64/column/tpcds │        │           │ 0         │ 73049     │ 943273    │
│ /s10/date_dim, Scan: Parallel, ReadRanges: ["d_date_sk (-∞, │        │           │           │           │           │
│  +∞)"], ReadColumns: ["d_date_sk","d_moy","d_year"])        │        │           │           │           │           │
│              -> TableFullScan (Table: dt64/column/tpcds/s10 │ 0      │ 10        │ 0         │ 10        │ 4051      │
│ /warehouse, Scan: Parallel, ReadRanges: ["w_warehouse_sk (- │        │           │           │           │           │
│ ∞, +∞)"], ReadColumns: ["w_warehouse_name","w_warehouse_sk" │        │           │           │           │           │
│ ])                                                          │        │           │           │           │           │
│            -> TableFullScan (Table: dt64/column/tpcds/s10/i │ 1      │ 102000    │ 0         │ 102000    │ 930135    │
│ tem, Scan: Parallel, ReadRanges: ["i_item_sk (-∞, +∞)"], Re │        │           │           │           │           │
│ adColumns: ["i_item_sk"])                                   │        │           │           │           │           │
└─────────────────────────────────────────────────────────────┴────────┴───────────┴───────────┴───────────┴───────────┘