Como verificar se uma tabela é armazenada em linha ou em coluna?
O modo de armazenamento de uma tabela é controlado pelo parâmetro ORIENTATION na instrução de criação de tabela. row indica armazenamento de linha e column indica armazenamento de coluna.
Em 8.1.2 e versões anteriores, se ORIENTATION não for especificado, o armazenamento de linha é usado por padrão.
Em versões posteriores a 8.1.3, o parâmetro default_orientation pode ser usado para controlar o modo de armazenamento. Se o parâmetro ORIENTATION não for especificado durante a criação da tabela, o modo de armazenamento da tabela é baseado no valor de default_orientation. row indica uma tabela de armazenamento de linhas, column indica uma tabela de armazenamento de colunas e column enabledelta indica que uma tabela de armazenamento de colunas com delta ativado é criado. O parâmetro GUC pode ser configurado no console do GaussDB(DWS), conforme mostrado na figura a seguir.
Você pode usar a função de definição de tabela PG_GET_TABLEDEF para verificar se a tabela criada é de armazenamento de linha ou de coluna.
Por exemplo, orientation=column indica uma tabela de armazenamento de colunas.
Atualmente, não é possível executar a instrução ALTER TABLE para modificar o parâmetro 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) |