更新时间:2024-10-08 GMT+08:00
如何查看GaussDB(DWS)表是行存还是列存?
表的存储方式由建表语句中的ORIENTATION参数控制,row表示行存,column表示列存。
8.1.2及之前版本,不指定ORIENTATION参数,默认为row行存。
8.1.3版本后,支持通过GUC参数default_orientation控制,即创建表时,如果不指定ORIENTATION参数时,则根据该GUC参数的值来创建对应类型的表。其中,row表示行存表,column表示列存表,column enabledelta表示创建开启delta表的列存表。该GUC可通过DWS控制台进行设置,如下图。
查看已创建的表是行存还是列存,可通过表定义函数PG_GET_TABLEDEF查询。
如下orientation=column表示为列存表。
目前暂不支持通过ALTER TABLE语句修改ORIENTATION参数,即行存表和列存表无法直接进行转换。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECT * FROM PG_GET_TABLEDEF('customer_t1'); pg_get_tabledef ----------------------------------------------------------------------------------- SET search_path = tpchobs; + 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_delta=false)+ DISTRIBUTE BY HASH(c_last_name) + TO GROUP group_version1; (1 row) |
父主题: 数据库使用