Todos los productos
Search
Centro de documentos

PolarDB:Prueba TPC-H para el índice columnar agrupado (100 GB)

Última actualización: Sep 09, 2026

Este tema describe el diseño, el procedimiento y los resultados de una prueba de referencia TPC-H para el índice columnar agrupado (CCI) de PolarDB-X.

Contexto

TPC-H es una prueba de referencia de soporte a la decisión establecida por el Transaction Processing Performance Council (TPC) para evaluar las capacidades de consulta analítica de las bases de datos. La carga de trabajo de TPC-H consta de ocho tablas y 22 consultas SQL complejas. La mayoría de estas consultas incluyen uniones de tablas, subconsultas y agregaciones GROUP BY.

Nota

La implementación de TPC-H descrita en este tema se basa en la prueba de referencia oficial de TPC-H. Sin embargo, la prueba no cumple con todos los requisitos oficiales, por lo que los resultados no son comparables con los resultados publicados de TPC-H.

Diseño de la prueba

Tamaño del conjunto de datos

Esta prueba utiliza un conjunto de datos de 100 GB (Scale Factor = 100). Las tablas principales son:

  • LINEITEM: aproximadamente 600 millones de filas

  • ORDERS: 150 millones de filas

  • PART_SUPP: 80 millones de filas

Especificaciones de la instancia de prueba

Especificación del nodo

Número de nodos

Tamaño del conjunto de datos

8c32g

2/4

100 GB

16c64g

2/3/4/6

100 GB

Especificación de la instancia para la prueba de estrés

ecs.g7.4xlarge (16 vCPU, 64 GB de memoria)

Procedimiento

Paso 1: Preparar la instancia ECS para la prueba de estrés

Prepare una instancia ECS. Utilizará esta instancia para todas las operaciones posteriores, como la importación de datos y la ejecución de la prueba de estrés.

Nota
  • Despliegue la instancia ECS en una VPC. Anote el nombre y el ID de la VPC, ya que todas las instancias posteriores deben desplegarse en la misma VPC.

  • Se recomienda usar el sistema operativo CentOS para la instancia ECS y asignarle una dirección IP pública.

Paso 2: Preparar la instancia de PolarDB-X****

Cree una instancia de PolarDB-X. Para obtener instrucciones detalladas, consulte Create an instance.

Nota
  • Asegúrese de que la instancia de PolarDB-X y la instancia ECS de prueba de estrés estén en la misma VPC.

  • Agregue la dirección IP interna de la instancia ECS de prueba de estrés a la lista blanca de la instancia de PolarDB-X.

Paso 3: Ajustar los parámetros de la instancia

Nota

Para lograr un rendimiento óptimo en la prueba de estrés, ajuste los parámetros de los nodos de cómputo de PolarDB-X.

  1. Establezca el parámetro XPROTO_MAX_DN_CONCURRENT en 4000. Para obtener instrucciones detalladas, consulte Parameter settings.

  2. Conéctese a la instancia de PolarDB-X mediante una interfaz de línea de comandos (CLI). En la misma sesión, ejecute las siguientes sentencias SQL para deshabilitar el registro de SQL, el muestreo de CPU y la recopilación automática de estadísticas.

    set global RECORD_SQL = false;
    set global MPP_METRIC_LEVEL = 0;
    set global ENABLE_CPU_PROFILE = false;
    set global ENABLE_BACKGROUND_STATISTIC_COLLECTION=false;
    set global ENABLE_STATISTIC_FEEDBACK=false;

Paso 4: Instalar la herramienta Benchmark Boot

  1. Abra el puerto 4121 en el security group de la instancia ECS de prueba de estrés. Para obtener más información, consulte Add a security group rule.

  2. Inicie sesión en la instancia ECS de prueba de estrés y ejecute el comando bash -c "$(curl -fsSL https://benchmark-boot.oss-cn-hangzhou.aliyuncs.com/setup.sh)" para instalar Benchmark Boot. Para obtener más información, consulte Descargar e instalar Benchmark Boot.

  3. En su navegador, abra http://{dirección IP pública de la instancia de prueba de estrés}:4121. Aparecerá la página principal de Benchmark Boot, lo que confirma que la instalación fue exitosa.

Paso 5: Preparar los datos

  1. En la consola de Benchmark Boot, vaya a Stress Test > Database Connection > Configure Database Connection. Configure la cadena de conexión de PolarDB-X (dirección IP del host, puerto, nombre de usuario y contraseña). Introduzca el nombre de la base de datos TPC-H, seleccione AUTO en Database Creation Mode y haga clic en Submit.

  2. Vaya a Stress Test > TPCH > Import TPC-H. Establezca Submit en 100 y Submit en 16. Haga clic en Submit para importar el conjunto de datos TPC-H de 100 GB a la instancia principal de PolarDB-X.

    Nota

    Una vez importados los datos, Benchmark Boot ejecuta automáticamente la sentencia ANALYZE TABLE para recopilar estadísticas.

  3. Después de importar el conjunto de datos TPC-H de 100 GB, ejecute las siguientes sentencias SQL en la instancia principal de PolarDB-X para crear índices columnares agrupados (CCI). Para obtener más información, consulte Create and use CCIs.

    create clustered columnar index `nation_col_index` on nation(`n_nationkey`) partition by hash(`n_nationkey`) partitions 1;
    
    create clustered columnar index `region_col_index` on region(`r_regionkey`) partition by hash(`r_regionkey`) partitions 1;
    
    create clustered columnar index `customer_col_index` on customer(`c_custkey`) partition by hash(`c_custkey`) partitions 64;
    
    create clustered columnar index `part_col_index` on part(`p_size`) partition by hash(`p_partkey`) partitions 64;
    
    create clustered columnar index `partsupp_col_index` on partsupp(`ps_partkey`) partition by hash(`ps_partkey`) partitions 64;
    
    create clustered columnar index `supplier_col_index` on supplier(`s_suppkey`) partition by hash(`s_suppkey`) partitions 64;
    
    create clustered columnar index `orders_col_index` on orders(`o_orderdate`,`o_orderkey`) partition by hash(`o_orderkey`) partitions 64;
    
    create clustered columnar index `lineitem_col_index` on lineitem(`l_shipdate`,`l_orderkey`) partition by hash(`l_orderkey`) partitions 64;
    Nota
    • Ejecute la sentencia SHOW COLUMNAR INDEX para consultar el estado actual de los CCI. Para obtener más información, consulte SHOW COLUMNAR INDEX.

    • La creación de los CCI tarda aproximadamente 45 minutos. Durante este proceso, el estado de los índices es Creating.

Paso 6: Agregar una instancia de almacenamiento columnar de solo lectura

Agregue una instancia de almacenamiento columnar de solo lectura a la instancia principal de PolarDB-X. Para obtener instrucciones detalladas, consulte Add a read-only column store instance.

Nota

Agregue la dirección IP interna de la instancia ECS de prueba de estrés a la lista blanca de la instancia de almacenamiento columnar de solo lectura de PolarDB-X.

Paso 7: Ejecutar la prueba TPC-H

  1. En la consola de Benchmark Boot, vaya a Stress Test > Database Connection > Configure Database Connection. Configure la cadena de conexión de la instancia de almacenamiento columnar de solo lectura, introduzca el nombre de la base de datos TPC-H, seleccione AUTO en Database Creation Mode y haga clic en Submit.

  2. Vaya a Stress Test > TPCH > Run TPCH. Seleccione Submit, introduzca una descripción de la tarea y haga clic en Submit para ejecutar las 22 sentencias de consulta de la prueba de referencia TPC-H.

  3. Vaya a Test Result > TPCH para consultar los resultados finales de la prueba.

    Nota

    La primera ejecución de la prueba de referencia requiere un periodo de calentamiento. Para obtener resultados estables, se recomienda ejecutar la prueba varias veces.

Resultados de la prueba

Todos los tiempos de ejecución están en segundos (s).

Consulta

8c32g * 2

8c32g * 4

16c64g * 2

16c64g * 3

16c64g * 4

16c64g * 6

Q1

5.9

3.99

4.37

1.6

1.22

0.86

Q2

2.41

1.68

1.63

1.15

1.04

0.86

Q3

4.18

2.13

2.43

1.77

1.20

0.88

Q4

3.72

1.02

0.94

0.78

0.48

0.44

Q5

5.63

3.12

3.27

2.05

1.68

1.4

Q6

0.41

0.38

0.42

0.18

0.15

0.13

Q7

5.47

2.94

2.93

2.08

1.72

1.34

Q8

3.61

2.31

1.98

1.81

1.68

1.51

Q9

13.6

6.91

7.46

4.93

3.85

3.11

Q10

6.36

3.12

3.5

2.31

1.73

1.26

Q11

1.51

0.64

0.74

0.53

0.49

0.35

Q12

1.86

0.82

0.78

0.57

0.40

0.35

Q13

8.85

4.29

4.44

2.6

1.64

1.2

Q14

0.94

0.58

0.7

0.51

0.38

0.31

Q15

1.26

0.76

0.88

0.59

0.47

0.37

Q16

2.3

1

1.19

0.75

0.61

0.46

Q17

1.86

0.75

0.69

0.47

0.43

0.49

Q18

8.43

4.18

4.43

3.16

2.19

1.6

Q19

4.92

2.16

1.86

1.07

1.02

0.73

Q20

1.88

1.34

1.17

0.73

0.78

0.73

Q21

12.05

3.18

3.11

2.38

1.72

1.57

Q22

2.67

1.25

1.39

0.98

0.66

0.61

Tiempo total

99.82

48.55

50.31

33.00

25.54

20.56