声明: この記事は著者のオリジナルであり、再版者はそれを示す必要があります。
著者: 曽金 (qq:310575)
最近は会社の BI ソフトウェアのパフォーマンスをテストするのに忙しく、最近は主に CUBE が ROLAP を使用する際の PA の同時実行性と安定性をテストしています。
テーブルとディメンションを含めると、キューブ: ファクト テーブル sales_fact_1997、ディメンション テーブル time_by_day キューブ: sales;
変更内容: 元のTIMEディメンションを削除し、新しいTIMEディメンションを作成し、SALESキューブを変更します。
データ挿入:
1. ファクト データの挿入: DTS とスケジュールを通じて sales_fact_1997 のデータをコピーします。頻度は 1 分あたり 10,000 メッセージです。
主に使用される SQL ステートメント: 上位 10000 * を sales_fact_1997 から選択
2. ディメンション データの挿入: SQL ステートメントを通じて time_by_day にデータを挿入します。
テストで使用される SQL ステートメント:
1. 単一挿入
INSERT INTO time_by_day
(時刻 ID、日付、年、年の月、四半期、月の日)
値 ('1101'、'1999-10-1'、'1999'、'10'、'Q4'、'1')
2. 単一挿入:
INSERT INTO time_by_day
(time_id、the_date、the_year、month_of_year、四半期、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 四半期、DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
3. ループの挿入:
DECLARE @MyCounter INT
SET @MyCounter = 0 /*変数を設定*/
WHILE (@MyCounter < 2) /*ループ数を設定*/
BEGIN
WAITFOR DELAY '000:00:10' /*遅延時間 10 秒*/
INSERT INTO time_by_day
(time_id、the_date、the_year、month_of_year、四半期、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 四半期、DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
SET @MyCounter = @MyCounter + 1
END
4.時間を変数としてデータを挿入する
DECLARE @MyCounter INT
宣言 @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) 、年、月、四半期、月の日)
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 四半期、DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
*/
time_by_day (time_id,the_date)values('371',@the_date) に挿入
SET @the_date = @the_date + 1
SET @MyCounter = @マイカウンター+1
エンド