Snowflake 数据库:关于 table 存储在 snowflake 中的性能问题

Snowflake database: Question on table performance which is stored in snowflake

我们在 snowflake 数据库中的 table 中进行了连续的插入、更新和删除操作,这会降低一段时间内 snowflake 中 table 的性能吗?

是的。有两个原因。

因为 INSERT、UPDATE 和 DELETE 的更改改变了分区数据的碎片,因此即使在 N hours/days 之后存在相同数量的 ROW,行的布局也会变得不对齐查询的亲和力 运行,因此您的性能配置文件可以从高度 p运行es 分区读取到完全 table 读取。

还有大量的更改,即使在那之后数据都是完美排序的,共享事实是进行了许多更改意味着你最终会有太多的分区,这会减慢你的速度SQL合集

如果您同时对同一个 table 进行插入、更新和删除操作,您的性能也会很差,因为第二个操作将被前一个操作阻止。这会浪费挂钟和信用分配(如果它们是不同的仓库)

您可以做一些事情来避免这种情况,例如 运行 集群,在“停机时间”重建 tables。不是删除数据,而是插入到“delete tables”,然后左连接和排除匹配。以上我们都做到了。