성명서: 이 기사는 저자의 원본이므로 재인쇄자는 이를 표시해야 합니다.
작성자: Zeng Jin (qq:310575)
최근에는 회사의 BI 소프트웨어 성능을 테스트하느라 바빴습니다. 요즘에는 CUBE에서 ROLAP을 사용할 때 PA의 동시성 및 안정성을 주로 테스트합니다.
테이블 및 차원 관련, 큐브: 팩트 테이블 sales_fact_1997, 차원 테이블 time_by_day 큐브: sales
수정 내용: 원래 TIME 차원을 삭제하고 새 TIME 차원을 생성한 후 SALES 큐브를 수정합니다.
데이터 삽입:
1. 팩트 데이터 삽입: DTS 및 스케줄링을 통해 sales_fact_1997의 데이터를 복사합니다. 빈도는 분당 10,000개의 메시지입니다.
주로 사용하는 SQL 문: sales_fact_1997에서 상위 10000 * 선택
2. 차원 데이터 삽입 : SQL 문을 통해 time_by_day에 데이터를 삽입합니다.
테스트에 사용된 SQL 문:
time_by_day에
단일 삽입
INSERT INTO
(time_id, the_date, the_year, Month_of_year, Quarter, day_of_month)
VALUES ('1101', '1999-10-1', '1999', '10', 'Q4','1')
2. 단일 삽입:
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 분기, 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, 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 분기, 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 , 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 분기, 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
END