Declaración: Este artículo es original del autor y el reimpresor debe indicarlo.
Autor: Zeng Jin (qq:310575)
Recientemente he estado ocupado probando el rendimiento del software de BI de la empresa. Estos días pruebo principalmente la concurrencia y la estabilidad de PA cuando CUBE usa ROLAP.
Que involucran tablas y dimensiones, cubo: tabla de hechos sales_fact_1997, tabla de dimensiones time_by_day cubo: ventas;
Contenido de modificación: elimine la dimensión de TIEMPO original, cree una nueva dimensión de TIEMPO y modifique el cubo de VENTAS.
Inserción de datos:
1. Inserción de datos de hechos: copie los datos de sales_fact_1997 a través de DTS y programación. La frecuencia es de 10.000 mensajes por minuto.
Declaraciones SQL utilizadas principalmente: seleccione top 10000 * de sales_fact_1997
2. Inserción de datos de dimensión: inserte datos en time_by_day mediante declaraciones SQL.
Declaraciones SQL utilizadas en la prueba:
1. Inserción única
INSERTAR EN time_by_day
(time_id, the_date, the_year, mes_of_year, quarter,day_of_month)
VALORES ('1101', '1999-10-1', '1999', '10', 'Q4', '1')
2. Inserción única:
INSERT INTO time_by_day
(time_id, the_date, the_year, mes_of_year, quarter, day_of_month)
SELECCIONE TOP 1 time_id + 1 AS time_id, the_date + 1 AS the_date, AÑO(the_date + 1)
COMO the_year, MES(the_date + 1) AS mes_of_year, { fn CUARTO(la_fecha + 1)
} COMO trimestre, DÍA(la_fecha + 1) COMO día_del_mes
DESDE hora_por_día
ORDENAR POR id_hora DESC
3. Inserción de bucle:
DECLARE @MyCounter INT
SET @MyCounter = 0 /*Establecer variables*/
WHILE (@MyCounter < 2) /*Establecer el número de bucles*/
BEGIN
WAITFOR DELAY '000:00:10' /*Tiempo de retraso 10 segundos*/
INSERT EN tiempo_por_día
(id_hora, fecha_año, mes_año_año, trimestre, día_mes)
SELECCIONE TOP 1 id_hora + 1 COMO id_hora, fecha_fecha + 1 COMO fecha_año, AÑO(fecha_fecha + 1)
COMO año_año, MES(fecha_fecha + 1) COMO mes_año_año, { fn TRIMESTRE( la_fecha + 1)
} COMO trimestre, DÍA(la_fecha + 1) COMO día_del_mes
DESDE hora_por_día
ORDENAR POR id_hora DESC
SET @MiContador = @MiContador + 1
FINAL
4. Insertar datos con el tiempo como variable.
DECLARE @MyCounter INT
declara @the_date fecha y hora
SET @MyCounter = 0
SET @the_date = '1999-1-4'
MIENTRAS (@MyCounter < 200000)
COMIENZA
A ESPERAR EL RETRASO '000:00:10'
/*INSERT INTO time_by_day
(time_id, the_date , el_año, mes_del_año, trimestre, día_del_mes)
SELECCIONE TOP 1 id_hora + 1 COMO id_hora, la fecha_+ 1 COMO la_fecha, AÑO(la_fecha + 1)
COMO el_año, MES(la_fecha + 1) COMO mes_del_año, { fn TRIMESTRE(la_fecha + 1)
} AS trimestre, DÍA(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
*/
insertar en time_by_day (time_id,the_date)values('371',@the_date)
SET @the_date = @the_date + 1
SET @MyCounter = @ MiContador + 1
FINAL