diff --git a/docs/reference/sql/explain.md b/docs/reference/sql/explain.md index 6fe3360d6cb1ff9887b30f686de8ab8d9d96d4df..d5e039ecf69122b3500ebfe4fdc88260dff88b97 100644 --- a/docs/reference/sql/explain.md +++ b/docs/reference/sql/explain.md @@ -166,20 +166,21 @@ except ### Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð²Ñтавка {: #local_segment_motion } -**Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð²Ñтавка** характерна Ð´Ð»Ñ `INSERT` Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡ÐµÐ¹ Ñтроки -значений: +Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð° **локальной вÑтавки** покажем `INSERT` Ñо вÑтавкой из читающего запроÑа другой таблицы, у +которой отличаетÑÑ ÐºÐ»ÑŽÑ‡ шардированиÑ: ```sql -EXPLAIN INSERT INTO warehouse VALUES (1, 'bricks', 'heavy'); +EXPLAIN INSERT INTO orders (id, item, amount) SELECT * FROM items WHERE id = 5; ``` Вывод в конÑоль: ``` -insert "WAREHOUSE" on conflict: fail - motion [policy: segment([ref("COLUMN_1")])] - values - value row (data=ROW(1::unsigned, 'bricks'::string, 'heavy'::string)) +insert "ORDERS" on conflict: fail + motion [policy: local segment([ref("ID")])] + projection ("ITEMS"."ID"::integer -> "ID", "ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK") + selection ROW("ITEMS"."ID"::integer) = ROW(5::unsigned) + scan "ITEMS" ``` ### Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð¼Ð°Ñ‚ÐµÑ€Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ {: #local_motion } @@ -232,21 +233,19 @@ update "WAREHOUSE" **ЧаÑтичное перемещение** проиÑходит, когда требуетÑÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÑŒ на узлы Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтающую чаÑÑ‚ÑŒ таблицы. -Пример `INSERT` Ñо вÑтавкой из читающего запроÑа другой таблицы, у -которой отличаетÑÑ ÐºÐ»ÑŽÑ‡ шардированиÑ: +Пример `INSERT` Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡ÐµÐ¹ Ñтроки значений: ```sql -EXPLAIN INSERT INTO orders (id, item, amount) SELECT * FROM items WHERE id = 5; +EXPLAIN INSERT INTO warehouse VALUES (1, 'bricks', 'heavy'); ``` Вывод в конÑоль: ``` -insert "ORDERS" on conflict: fail - motion [policy: local segment([ref("ID")])] - projection ("ITEMS"."ID"::integer -> "ID", "ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK") - selection ROW("ITEMS"."ID"::integer) = ROW(5::unsigned) - scan "ITEMS" +insert "WAREHOUSE" on conflict: fail + motion [policy: segment([ref("COLUMN_1")])] + values + value row (data=ROW(1::unsigned, 'bricks'::string, 'heavy'::string)) ``` Пример `JOIN` двух таблиц Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼Ð¸ ключами шардированиÑ: