Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ GaussDB(DWS)/ Perguntas frequentes/ Uso do banco de dados/ Como verificar se uma tabela é armazenada em linha ou em coluna?
Atualizado em 2024-05-09 GMT+08:00

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)