Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ GaussDB(DWS)/ Preguntas frecuentes/ Uso de la base de datos/ ¿Cómo puedo comprobar si una tabla está almacenada en filas o en columnas?
Actualización más reciente 2023-10-12 GMT+08:00

¿Cómo puedo comprobar si una tabla está almacenada en filas o en columnas?

El modo de almacenamiento de una tabla se controla mediante el parámetro ORIENTATION en la instrucción de creación de tabla. row indica el almacenamiento de filas y column indica el almacenamiento de columnas.

En 8.1.2 y versiones anteriores, si no se especifica ORIENTATION, el almacenamiento de filas se utiliza de forma predeterminada.

En versiones posteriores a la 8.1.3, el parámetro default_orientation se puede utilizar para controlar el modo de almacenamiento. Si el parámetro ORIENTATION no se especifica durante la creación de la tabla, el modo de almacenamiento de tabla se basa en el valor de default_orientation. row indica una tabla de almacén de filas, column indica una tabla de almacén de columnas y column enabledelta indica que se crea una tabla de almacén de columnas con delta activado. El parámetro GUC se puede configurar en la consola GaussDB(DWS), como se muestra en la siguiente figura.

Puede utilizar la función de definición de tabla PG_GET_TABLEDEF para comprobar si la tabla creada es almacén de filas o almacén de columnas.

Por ejemplo, orientation=column indica una tabla de almacenamiento de columnas.

Actualmente, no puede ejecutar la instrucción ALTER TABLE para modificar el 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)