ALTER proc [dbo].[insert_3table]
as
declare @maxId int
select @maxId=max(id) from dbo.yuanShiData -- 插入地区访问数据
insert into dbo.sheng_bingTu(sheng_id,[count],insert_time) 
select sheng_id,count(1) as mycount,insert_time from dbo.vv_yuanshi_ip 
where id<=@maxId group by sheng_id,insert_time -- 插入栏目排名数据
insert into dbo.lanmu_Tu(lanmu1_id,[count],insert_time)
select lanmu_id,count(1) as mycount,insert_time from dbo.vv_yuanshi_lanmu 
where id<=@maxId and lanmu_id >0 group by lanmu_id,insert_time -- 插入新闻排名数据 insert into dbo.news_paiMing(news_url,dbw_id,[count],insert_time)
select url,dbw_id,count(1) as mycount,insert_time from dbo.vv_yuanshi_top10dbwId 
where id<=@maxId group by dbw_id,insert_time,url

-- 删除原始表中的数据
delete dbo.yuanShiData where id<=@maxId在这个存储过程中执行三个Insert语句,我想能不能让这三条语句并行运行,三条语句执行结束后执行最后的delete语句,
谢谢大家!!!

解决方案 »

  1.   

    我在sql_server中建了一个作业来执行这个存储过程,项目要求必须在sql_server内解决这个问题,不能在利用程序调用!
      

  2.   

    每秒有大约300条记录插入到dbo.yuanShiData表中,执行这个存储过程,将符合条件的记录插入到另外三张表中,最后删除dbo.yuanShiData表。我现在模拟每秒插入100条,速度很慢,所以想能不能采用并行的方式插入!