文档首页/ 数据仓库服务 DWS/ 常见问题/ 数据库使用/ 如何查看DWS表是行存还是列存?
更新时间:2026-06-11 GMT+08:00
分享

如何查看DWS表是行存还是列存?

表的存储方式由建表语句CREATE TABLE中的ORIENTATION参数控制,row表示行存,column表示列存。不指定ORIENTATION参数时,默认为row(行存)。

可通过表定义函数pg_get_tabledef()查看已创建的表是行存还是列存。

示例:查询表customer_t1的定义。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
SELECT * FROM PG_GET_TABLEDEF('customer_t1');

                                             pg_get_tabledef
------------------------------------------------------------------------------------------------------------
 SET search_path = public;                                                                                 +
 CREATE  TABLE customer_t1 (                                                                               +
         c_customer_sk integer,                                                                            +
         c_customer_id character(5),                                                                       +
         c_first_name character(6),                                                                        +
         c_last_name character(8)                                                                          +
 )                                                                                                         +
 WITH (orientation=column, compression=middle, colversion=2.0, enable_hstore_opt=false, enable_delta=false)+
 DISTRIBUTE BY HASH(c_last_name)                                                                           +
 TO GROUP group_version1;
(1 row)

返回结果中的orientation=column,表示customer_t1为列存表。

DWS不支持通过ALTER TABLE语句修改ORIENTATION参数,即行存表和列存表无法直接进行转换。

相关文档