Erklärung: Dieser Artikel ist ein Original des Autors und der Nachdruck muss darauf hinweisen.
Autor: Zeng Jin (qq:310575)
In letzter Zeit war ich damit beschäftigt, die Leistung der BI-Software des Unternehmens zu testen. Derzeit teste ich hauptsächlich die Parallelität und Stabilität von PA, wenn CUBE ROLAP verwendet.
Einschließlich Tabellen und Dimensionen, Cube: Faktentabelle sales_fact_1997, Dimensionstabelle time_by_day; Cube: sales
Änderungsinhalt: Löschen Sie die ursprüngliche TIME-Dimension, erstellen Sie eine neue TIME-Dimension und ändern Sie den SALES-Cube.
Dateneinfügung:
1. Einfügen von Faktendaten: Kopieren Sie die Daten von sales_fact_1997 über DTS und Planung. Die Frequenz beträgt 10.000 Nachrichten pro Minute.
Hauptsächlich verwendete SQL-Anweisungen: select top 10000 * aus sales_fact_1997
2. Einfügen von Dimensionsdaten: Fügen Sie Daten über SQL-Anweisungen in time_by_day ein.
Im Test verwendete SQL-Anweisungen:
1. Einmaliges Einfügen
von INSERT INTO time_by_day
(Zeit-ID, Datum, Jahr, Monat des Jahres, Quartal, Tag des Monats)
WERTE ('1101', '1999-10-1', '1999', '10', 'Q4', '1')
2. Einzeleinfügung:
INSERT INTO time_by_day
(time_id, the_date, the_year, Month_of_year, Quarter, day_of_month)
SELECT TOP 1 time_id + 1 AS time_id, the_date + 1 AS the_date, YEAR(the_date + 1)
AS the_year, MONTH(the_date + 1) AS Month_of_year, { fn QUARTER(the_date + 1)
} AS Quarter, DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
3. Schleifeneinfügung:
DECLARE @MyCounter INT
SET @MyCounter = 0 /*Variablen setzen*/
WHILE (@MyCounter < 2) /*Anzahl der Schleifen festlegen*/
BEGIN
WAITFOR DELAY '000:00:10' /*Verzögerungszeit 10 Sekunden*/
INSERT INTO time_by_day
(time_id, the_date, the_year, Month_of_year, Quarter, day_of_month)
SELECT TOP 1 time_id + 1 AS time_id, the_date + 1 AS the_date, YEAR(the_date + 1)
AS the_year, MONTH(the_date + 1) AS Month_of_year, { fn QUARTER(the_date + 1)
} AS Quarter, DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
SET @MyCounter = @MyCounter + 1
ENDE
4. Fügen Sie Daten mit der Zeit als Variable ein
DECLARE @MyCounter INT
deklariere @the_date datetime
SET @MyCounter = 0
SET @the_date = '1999-1-4'
WHILE (@MyCounter < 200000)
BEGIN
WAITFOR DELAY '000:00:10'
/*INSERT INTO time_by_day
(time_id, the_date , the_year, Month_of_year, Quarter, day_of_month)
SELECT TOP 1 time_id + 1 AS time_id, the_date + 1 AS the_date, YEAR(the_date + 1)
AS the_year, MONTH(the_date + 1) AS Month_of_year, { fn QUARTER(the_date + 1)
} AS Quarter, DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
*/
insert into time_by_day (time_id,the_date)values('371',@the_date)
SET @the_date = @the_date + 1
SET @MyCounter = @ MyCounter + 1
ENDE