Skip to content

Instantly share code, notes, and snippets.

@bra-fsn
Created January 16, 2020 08:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bra-fsn/658a1eaecc6d358c74b47b8311ff0c69 to your computer and use it in GitHub Desktop.
Save bra-fsn/658a1eaecc6d358c74b47b8311ff0c69 to your computer and use it in GitHub Desktop.
crdb excessive IO CTE query plan
⚬ Root
⚬ Count
⚬ Insert
into = object_locations(store, id, disk, start, end, cksum)
strategy = inserter
⚬ Render
render = [column1, column2, unnest, unnest, unnest, CAST(_ AS BYTES)]
⚬ Project set
render = [unnest(@6), unnest(@7), unnest(@8)]
⚬ Hash-join
equality = (column2) = (id)
type = inner
⚬ Scan buffer node
label = buffer 1 (inputrows)
⚬ Scan buffer node
label = buffer 2 (inserted_objects)
⚬ Subquery
exec mode = all rows
id = @S1
original sql = VALUES (_, _::BYTES, _, _, _, ARRAY[_, _], ARRAY[_, _], ARRAY[_, _]), (__more10__)
⚬ Buffer node
label = buffer 1 (inputrows)
⚬ Values
row 0, expr = [_, _, _, _, _, _, _, _]
row 1, expr = [_, _, _, _, _, _, _, _]
row 10, expr = [_, _, _, _, _, _, _, _]
row 2, expr = [_, _, _, _, _, _, _, _]
row 3, expr = [_, _, _, _, _, _, _, _]
row 4, expr = [_, _, _, _, _, _, _, _]
row 5, expr = [_, _, _, _, _, _, _, _]
row 6, expr = [_, _, _, _, _, _, _, _]
row 7, expr = [_, _, _, _, _, _, _, _]
row 8, expr = [_, _, _, _, _, _, _, _]
row 9, expr = [_, _, _, _, _, _, _, _]
size = 8 columns, 11 rows
⚬ Subquery
exec mode = all rows
id = @S2
original sql = INSERT INTO objects(store, id, size) (SELECT DISTINCT ON (store, object_id) store, object_id, size FROM inputrows) ON CONFLICT (store, id) DO NOTHING RETURNING store, id
⚬ Buffer node
label = buffer 2 (inserted_objects)
⚬ Spool
⚬ Run
⚬ Insert
into = objects(store, id, size, flags, atime, chunks)
strategy = inserter
⚬ Render
render = [store, object_id, size, column23, column24, column25]
⚬ Filter
filter = store IS _
⚬ Lookup-join
table = objects@primary
equality = (store, object_id) = (store, id)
equality cols are key
parallel
type = left outer
⚬ Render
render = [CAST(_ AS VARBIT), now()::INT8, CAST(_ AS JSONB), column1, column2, column5]
⚬ Distinct
distinct on = column1, column2
⚬ Render
render = [column1, column2, column5]
⚬ Scan buffer node
label = buffer 1 (inputrows)
⚬ Subquery
exec mode = all rows
id = @S3
original sql = INSERT INTO bucket_objects(store, oid, bucket, id) (SELECT store, object_id, bucket, bucket_id FROM inputrows) ON CONFLICT (store, oid, bucket, id) DO NOTHING RETURNING bucket, id
⚬ Buffer node
label = buffer 3 (inserted_bucket_objects)
⚬ Spool
⚬ Render
render = [bucket, id]
⚬ Run
⚬ Insert
into = bucket_objects(store, oid, bucket, id, http_headers, ipacl, max_downloads, counter, atime)
strategy = inserter
⚬ Render
render = [store, object_id, bucket, bucket_id, column49, column49, column50, column51, column52]
⚬ Render
render = [store, object_id, bucket, bucket_id, column49, column50, column51, column52]
⚬ Filter
filter = store IS _
⚬ Lookup-join
table = bucket_objects@ixnbi
equality = (bucket, bucket_id) = (bucket, id)
equality cols are key
parallel
pred = (@5 = @9) AND (@6 = @10)
type = left outer
⚬ Render
render = [CAST(_ AS JSONB), CAST(_ AS INT8), _, now()::INT8, column1, column2, column3, column4]
⚬ Scan buffer node
label = buffer 1 (inputrows)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment