数据仓库服务 GaussDB(DWS)-案例:使用partial cluster key:优化后

时间:2025-02-12 15:04:47

优化后

where条件中l_shipdate和l_quantity的distinct值数量较少且可以做min max过滤,将字段l_shipdate、l_quantity设置为PCK修改表定义如下:

 1 2 3 4 5 6 7 8 910111213141516171819202122
CREATE TABLE lineitem(L_ORDERKEY    BIGINT NOT NULL, L_PARTKEY     BIGINT NOT NULL, L_SUPPKEY     BIGINT NOT NULL, L_LINENUMBER  BIGINT NOT NULL, L_QUANTITY    DECIMAL(15,2) NOT NULL, L_EXTENDEDPRICE  DECIMAL(15,2) NOT NULL, L_DISCOUNT    DECIMAL(15,2) NOT NULL, L_TAX         DECIMAL(15,2) NOT NULL, L_RETURNFLAG  CHAR(1) NOT NULL, L_LINESTATUS  CHAR(1) NOT NULL, L_SHIPDATE    DATE NOT NULL, L_COMMITDATE  DATE NOT NULL, L_RECEIPTDATE DATE NOT NULL, L_SHIPINSTRUCT CHAR(25) NOT NULL, L_SHIPMODE     CHAR(10) NOT NULL, L_COMMENT      VARCHAR(44) NOT NULL, partial cluster key(l_shipdate, l_quantity))with (orientation = column)distribute by hash(L_ORDERKEY);

重新导入数据后执行查询,查看执行时间:

图3 使用partial cluster key
图4 使用partial cluster key后CU加载情况

使用partial cluster key后,5-- CS tore Scan on public.lineitem的时间减少了1.2s,得益于有84个CU被过滤掉了。

support.huaweicloud.com/devg-dws/dws_04_0490.html