1

我有一个关于在 Snowflake 中并行执行多个 SQL 语句时它是如何工作的问题。

例如,如果我在具有相同基表的 10 个不同表上执行 10 个插入语句 - 这些表会并行加载吗?

4

4 回答 4

0

我在具有相同基表的 10 个不同表上执行 10 个插入语句 - 这些表会并行加载吗?

是的!

在 SF https://docs.snowflake.com/en/sql-reference/sql/insert-multi-table.html中查找多表插入

于 2021-06-25T12:53:52.643 回答
0

由于 Copy 和 Insert 语句只写入新分区,它们可以与其他 Copy 或 Insert 语句并行运行。

https://docs.snowflake.com/en/sql-reference/transactions.html

于 2020-09-11T09:47:15.223 回答
0

Snowflake 中的并发性通过多个仓库(计算资源)或在仓库上启用多集群(一个虚拟仓库具有多个服务器集群)进行管理。

https://docs.snowflake.com/en/user-guide/warehouses-multicluster.html

我今天正在与一位每天执行数百万条 SQL 命令的客户合作,他们有许多不同的仓库,并且这些仓库中的大多数都设置为多集群“自动缩放”模式。

具体来说,对于您的问题,听起来您连接了十个会话,通过查询单个基表将插入运行到十个表中。我可能会从一个虚拟仓库开始测试,配置最少一个集群,最多配置三个或四个,然后运行测试并查看结果。

我将使用的仓库的大小主要取决于查询的大小(SELECT 部分),您可以从介质之类的东西开始,然后查看插入的性能和查询计划,看看这是否是合适的大小.

在审查计划时,检查排队时间,看看三四个集群是否不够,它可能会没事的。

您的查询历史记录还将指示您的查询在虚拟仓库中运行的“cluster_number”。这是查看正在运行的集群数量(最大 cluster_number)的一种方法,另一种方法是查看 webUI 中的仓库选项卡或执行“显示仓库”;命令。

一些可能对您有所帮助的附加链接:

https://www.snowflake.com/blog/auto-scale-snowflake-major-leap-forward-massively-concurrent-enterprise-applications/

https://community.snowflake.com/s/article/Putting-Snowflake-s-Automatic-Concurrency-Scaling-to-the-Test

https://support.snowflake.net/s/question/0D50Z00009T2QTXSA3/what-is-the-difference-in-scale-out-vs-scale-up-why-is-scale-out-for-concurrency-and-扩大规模是为了大型查询-

我希望这会有所帮助...丰富

ps 如果这个(或另一个)答案对您有帮助,请花点时间“接受”有帮助的答案,方法是单击答案旁边的复选标记,将其从“灰色”切换为“已填写”。

于 2020-09-10T11:11:49.807 回答
0

https://docs.snowflake.com/en/sql-reference/transactions.html#transaction-commands-and-functions ” 声明“大多数 INSERT 和 COPY 语句只写入新分区。这些语句通常可以与其他 INSERT 和 COPY 操作,..."

我假设当它们想要插入同一个微分区时,语句不能并行运行。这是正确的还是有另一种解释为什么会发生 INSERT 锁定?

于 2021-05-26T11:54:08.333 回答