精华用SQL数据库批量插入数据简介

精华用SQL数据库批量插入数据简介
作者:佚名    来源:不详    点击数:
391    更新时间:2006年12月11日
 

最近忙于公司BI软件性能测试,这几天主要测试CUBE采用ROLAP下,PA的并发和稳定性。涉及表和维度,立方:事实表 sales_fact_1997,维度表time_by_day;立方:sales。修改内容:删除原来的TIME维度,新建TIME维度,修改 SALES立方。

数据插入:

1 、事实数据插入:通过DTS加调度实现将sales_fact_1997的数据进行复制。频率为每分钟10000条。主要用到的SQL语句: select   top   10000   *   from  sales_fact_1997

2 、维度数据插入:通过SQL语句插入数据到time_by_day.

测试用到的SQL语句:

1 、单条插入

INSERT   INTO  time_by_day 

(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  quarter,  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  quarter,  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  

declare   @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  

END

(T115) 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值