Paso 5: Prueba del rendimiento del sistema en la nueva tabla
Después de recrear el conjunto de datos de prueba con los modos de almacenamiento, los niveles de compresión, los modos de distribución y las claves de distribución seleccionados, volverá a probar el rendimiento del sistema.
- Registre el uso del espacio de almacenamiento de cada tabla.
Determine cuánto espacio en disco se utiliza para cada tabla mediante la función pg_size_pretty y registre los resultados en las tablas base.
1SELECT T_NAME, PG_SIZE_PRETTY(PG_RELATION_SIZE(t_name)) FROM (VALUES('store_sales'),('date_dim'),('store'),('item'),('time_dim'),('promotion'),('customer_demographics'),('customer_address'),('household_demographics'),('customer'),('income_band')) AS names1(t_name);
t_name | pg_size_pretty ------------------------+---------------- store_sales | 14 GB date_dim | 27 MB store | 4352 kB item | 259 MB time_dim | 14 MB promotion | 3200 kB customer_demographics | 11 MB customer_address | 27 MB household_demographics | 1280 kB customer | 111 MB income_band | 896 kB (11 rows)
- Pruebe el rendimiento de la consulta y registre los datos de rendimiento en la tabla de referencia.
Ejecute las siguientes consultas de nuevo y registre el tiempo empleado en cada consulta.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
\timing on SELECT * FROM (SELECT COUNT(*) FROM store_sales ,household_demographics ,time_dim, store WHERE ss_sold_time_sk = time_dim.t_time_sk AND ss_hdemo_sk = household_demographics.hd_demo_sk AND ss_store_sk = s_store_sk AND time_dim.t_hour = 8 AND time_dim.t_minute >= 30 AND household_demographics.hd_dep_count = 5 AND store.s_store_name = 'ese' ORDER BY COUNT(*) ) LIMIT 100; SELECT * FROM (SELECT i_brand_id brand_id, i_brand brand, i_manufact_id, i_manufact, SUM(ss_ext_sales_price) ext_price FROM date_dim, store_sales, item,customer,customer_address,store WHERE d_date_sk = ss_sold_date_sk AND ss_item_sk = i_item_sk AND i_manager_id=8 AND d_moy=11 AND d_year=1999 AND ss_customer_sk = c_customer_sk AND c_current_addr_sk = ca_address_sk AND substr(ca_zip,1,5) <> substr(s_zip,1,5) AND ss_store_sk = s_store_sk GROUP BY i_brand ,i_brand_id ,i_manufact_id ,i_manufact ORDER BY ext_price desc ,i_brand ,i_brand_id ,i_manufact_id ,i_manufact ) LIMIT 100; SELECT * FROM (SELECT s_store_name, s_store_id, SUM(CASE WHEN (d_day_name='Sunday') THEN ss_sales_price ELSE null END) sun_sales, SUM(CASE WHEN (d_day_name='Monday') THEN ss_sales_price ELSE null END) mon_sales, SUM(CASE WHEN (d_day_name='Tuesday') THEN ss_sales_price ELSE null END) tue_sales, SUM(CASE WHEN (d_day_name='Wednesday') THEN ss_sales_price ELSE null END) wed_sales, SUM(CASE WHEN (d_day_name='Thursday') THEN ss_sales_price ELSE null END) thu_sales, SUM(CASE WHEN (d_day_name='Friday') THEN ss_sales_price ELSE null END) fri_sales, SUM(CASE WHEN (d_day_name='Saturday') THEN ss_sales_price ELSE null END) sat_sales FROM date_dim, store_sales, store WHERE d_date_sk = ss_sold_date_sk AND s_store_sk = ss_store_sk AND s_gmt_offset = -5 AND d_year = 2000 GROUP BY s_store_name, s_store_id ORDER BY s_store_name, s_store_id,sun_sales,mon_sales,tue_sales,wed_sales,thu_sales,fri_sales,sat_sales ) LIMIT 100;
La siguiente tabla de referencia muestra los resultados de validación del clúster utilizado en este tutorial. Sus resultados pueden variar en función de varios factores, pero los resultados relativos deberían ser similares. Las duraciones de ejecución de las consultas que tienen la misma estructura de tabla pueden ser diferentes, dependiendo de la caché del sistema operativo durante la ejecución. Se recomienda realizar varias rondas de pruebas y seleccionar un grupo con valores promedio.
Referencia
Antes
Después
Tiempo de carga (11 tablas)
341584 ms
257241 ms
Espacio de almacenamiento ocupado
Store_Sales
42 GB
14 GB
Date_Dim
11 MB
27 MB
Store
232 KB
4352 KB
Item
110 MB
259 MB
Time_Dim
11 MB
14 MB
Promotion
256 KB
3200 KB
Customer_Demographics
171 MB
11 MB
Customer_Address
170 MB
27 MB
Household_Demographics
504 KB
1280 KB
Customer
441 MB
111 MB
Income_Band
88 KB
896 KB
Espacio de almacenamiento total
42 GB
15 GB
Tiempo de ejecución de consultas
Consulta 1
14552.05 ms
1783.353 ms
Consulta 2
27952.36 ms
14247.803 ms
Consulta 3
17721.15 ms
11441.659 ms
Tiempo total de ejecución
60225.56 ms
27472.815 ms
- Si tiene expectativas más altas para el rendimiento después del diseño de la tabla, puede ejecutar el comando EXPLAIN PERFORMANCE para ver el plan de ejecución para el ajuste.
Para obtener más información sobre los planes de ejecución y el ajuste de consultas, consulte Plan de ejecución de SQL y Descripción del ajuste de rendimiento de DWS.