بيان: هذه المقالة أصلية للمؤلف، ويجب على الناشر الإشارة إليها.
المؤلف: تسنغ جين (ف ف:310575)
لقد كنت مشغولًا مؤخرًا باختبار أداء برنامج BI الخاص بالشركة. وفي هذه الأيام، أقوم بشكل أساسي باختبار التزامن والاستقرار في PA عندما يستخدم CUBE ROLAP.
تضمين الجداول والأبعاد، المكعب: جدول الحقائق sales_fact_1997، جدول الأبعاد time_by_day؛ المكعب: المبيعات
محتوى التعديل: احذف بُعد الوقت الأصلي، وأنشئ بُعدًا جديدًا للوقت، وقم بتعديل مكعب المبيعات.
إدخال البيانات:
1. إدراج بيانات الحقيقة: انسخ بيانات sales_fact_1997 من خلال DTS والجدولة. التردد 10.000 رسالة في الدقيقة.
عبارات SQL المستخدمة بشكل أساسي: حدد أعلى 10000 * من sales_fact_1997
2. إدراج بيانات البعد: أدخل البيانات في time_by_day من خلال عبارات SQL.
عبارات SQL المستخدمة في الاختبار:
1. إدراج واحد
أدخل في time_by_day
(time_id، the_date، the_year،month_of_year،ربع،day_of_month)
VALUES ('1101'، '1999-10-1'، '1999'، '10'، 'Q4'، '1')
2. الإدراج الفردي:
أدخل في time_by_day
(معرف الوقت، the_date، the_year، Month_of_year، الربع، day_of_month)
حدد 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 ربع سنوي، DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
3. حلقة الإدراج:
أعلن @MyCounter INT
SET @MyCounter = 0 /*تعيين المتغيرات*/
بينما (@MyCounter < 2) /*تعيين عدد الحلقات*/
بدء
الانتظار للتأخير '000:00:10' /*وقت التأخير 10 ثوانٍ*/
INSERT INTO time_by_day
(time_id، the_date، the_year،month_of_year،ربع،day_of_month)
حدد 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 ربع سنوي، DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
SET @MyCounter = @MyCounter + 1
END
4. أدخل البيانات مع الزمن كمتغير
أعلن @MyCounter INT
يعلن @the_date datetime
SET @MyCounter = 0
SET @the_date = '1999-1-4'
بينما (@MyCounter < 200000)
يبدأ
الانتظار للتأخير '000:00:10'
/ * أدخل في time_by_day
(time_id، the_date ، the_year، Month_of_year، ربع، day_of_month)
حدد 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)
} كربع، DAY(the_date + 1) AS day_of_month
من time_by_day
ORDER BY time_id DESC
*/
أدخل في قيم time_by_day (time_id,the_date)('371',@the_date)
SET @the_date = @the_date + 1
SET @MyCounter = @ ماي كاونتر + 1
النهاية