增加仓库规模

本主题讨论仓库所有者或管理员如何调整仓库的规模,以提高在其上运行的查询的性能。

仓库越大,可用于执行一项查询或一组查询的计算资源就越多。因此,增加仓库规模成为提高查询性能的直接策略;只需扩大仓库规模,重新运行查询,而如果提高的性能不能证明运行查询的成本增加是合理的,则将仓库恢复到其原始规模。

仓库越大,对更大、更复杂的查询影响最大,并且可能不会提高小型基本查询的性能。

备注

您必须有 访问共享 SNOWFLAKE 数据库的权限,才能执行本主题中提供的诊断查询。默认情况下,只有 ACCOUNTADMIN 角色具有执行查询所需的权限。

确定仓库的负载

检查仓库的负载有助于确定规模增加是否有助于提高性能。如果仓库负载过重,并发查询可能会争用其计算资源,在这种情况下,增加仓库规模可能不会带来预期的性能提升。但是,如果您可以确定负载较低,则增加仓库规模很有可能将提高复杂查询的性能。

查询:仓库负载

此查询提供对已执行查询和排队查询的仓库总负载的见解。这些负载值表示时间间隔内处于特定状态的所有查询的总执行时间(以秒为单位)与该时间间隔的总时间(以秒为单位)的比率。

例如,如果 276 秒是 5 分钟(300 秒)间隔内 4 个查询的总时间,则查询负载值为 276/300 = 0.92。

 SELECT TO_DATE(start_time) AS date,
  warehouse_name,
  SUM(avg_running) AS sum_running,
  SUM(avg_queued_load) AS sum_queued
FROM snowflake.account_usage.warehouse_load_history
WHERE TO_DATE(start_time) >= DATEADD(month,-1,CURRENT_TIMESTAMP())
GROUP BY 1,2
HAVING SUM(avg_queued_load) >0;
Copy

成本注意事项

在给定的时间长度内,较大的仓库会消耗更多的 Credit:

仓库规模

credit / 小时

credit / 秒

备注

X-小

1

0.0003

在 Snowsight 中用 CREATE WAREHOUSE 创建的仓库的默认规模。

2

0.0006

4

0.0011

8

0.0022

X-大

16

0.0044

使用 Classic Console 创建的仓库的默认规模。

2X-大

32

0.0089

3X-大

64

0.0178

4X-大

128

0.0356

5X-大

256

0.0711

在 Amazon Web Services (AWS) 和 Microsoft Azure 区域正式发布,在 US 政府区域提供预览版。

6X-大

512

0.1422

在 Amazon Web Services (AWS) 和 Microsoft Azure 区域正式发布,在 US 政府区域提供预览版。

如果在较大的仓库上执行查询所需的时间较少,则减少的执行时间可以弥补大型仓库运行所增加的成本。例如,如果查询在下个最大仓库上的运行速度提高一倍,则查询的总运行成本保持不变。

小技巧

最佳实践是限制可以调整仓库规模的人员。如果允许用户增加仓库规模以满足个人查询的需求,则如果用户在执行查询后忘记将仓库恢复到原始规模,可能会导致意外成本。

如何增加仓库规模

要增加仓库规模,请执行以下步骤:

Snowsight:
  1. 登录 Snowsight。

  2. 导航到 Admin » Warehouses

  3. 找到仓库,然后选择 . . . » Edit

  4. 使用 Size 下拉列表选择新的仓库规模。

  5. 选择 Save Warehouse

SQL:

使用 ALTER WAREHOUSE 命令更改仓库规模。例如:

ALTER WAREHOUSE my_wh SET WAREHOUSE_SIZE = large;
Copy
语言: 中文