Déclaration : Cet article est original de l'auteur et le réimprimeur doit l'indiquer.
Auteur : Zeng Jin (qq:310575)
Récemment, j'ai été occupé à tester les performances du logiciel BI de l'entreprise. Ces jours-ci, je teste principalement la concurrence et la stabilité de PA lorsque CUBE utilise ROLAP.
Impliquant des tables et des dimensions, cube : table de faits sales_fact_1997, table de dimensions time_by_day cube : ventes ;
Contenu de la modification : supprimez la dimension TIME d'origine, créez une nouvelle dimension TIME et modifiez le cube SALES.
Insertion de données :
1. Insertion des données de faits : copiez les données de sales_fact_1997 via DTS et la planification. La fréquence est de 10 000 messages par minute.
Instructions SQL principalement utilisées : sélectionnez les 10 000 premiers * dans sales_fact_1997
2. Insertion des données de dimension : insérez des données dans time_by_day via des instructions SQL.
Instructions SQL utilisées dans le test :
1. Insertion unique
INSERT INTO time_by_day
(time_id, the_date, the_year,month_of_year, quarter,day_of_month)
VALEURS ('1101', '1999-10-1', '1999', '10', 'Q4','1')
2. Insertion unique :
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) ASmonth_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. Insertion de boucle :
DECLARE @MyCounter INT
SET @MyCounter = 0 /*Définir les variables*/
WHILE (@MyCounter < 2) /*Définir le nombre de boucles*/
BEGIN
WAITFOR DELAY '000:00:10' /*Délai 10 secondes*/
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) ASmonth_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 @MonCompteur = @MonCompteur + 1
FIN
4. Insérez des données avec le temps comme variable
DECLARE @MyCounter INT
déclare @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 , l'année, le mois_de_l'année, le trimestre, le jour_du_mois)
SELECT TOP 1 time_id + 1 AS time_id, la_date + 1 AS la_date, ANNÉE(la_date + 1)
AS l'année, MOIS(la_date + 1) AS mois_de_l'année, { fn QUARTER(la_date + 1)
} AS quarter, DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
*/
insérer dans time_by_day (time_id,the_date)values('371',@the_date)
SET @the_date = @the_date + 1
SET @MyCounter = @ MonCompteur + 1
FIN