日期:2014-05-18  浏览次数:20817 次

疑问请教,高手进
sql server 2012 在存储过程往一个大表(100列)里插数据平局100-150W条,
一开始是在客户端 exec 调用;一开始执行,现在执行这个居然只要1分多钟。请问啥原因?


------解决方案--------------------
楼主的意思是时间短了?
------解决方案--------------------
居然只要1分多钟?
您的意思是应该更长点?
------解决方案--------------------
嗯,效率还可以.
------解决方案--------------------
如果你是insert into firsttable select * from secondtable速度更快

有時整個服務器的數據就是先copy表,然後就這麼copy數據來的,習以為常了

感覺不正常?

------解决方案--------------------
100-150W 1分钟速度挺快的了...
------解决方案--------------------
不同程序的调用机制是不是有什么不一样?你可以测测过程在数据库端执行需要多长时间,再看看具体差距有多大。每个标准不好说啊,再说了过程里面是不是有什么机制导致调用后插入的方式或数据量不一样呢
------解决方案--------------------
探讨
具体过程如下
.net控制台程序执行: 每天生成的 bcp文件-〉倒入 tmp表(清空后导入)

过程a执行: 校验-〉insert 最终表last


insert into 最终表last
select * from tmp表

原先是执行完导入,我手动用sql server客户端 exec 过程a; 原先一开始也要12分钟;第2天,发现居然只要1分多钟。

现在我是想.……

------解决方案--------------------
探讨

具体过程如下
.net控制台程序执行: 每天生成的 bcp文件-〉倒入 tmp表(清空后导入)

过程a执行: 校验-〉insert 最终表last


insert into 最终表last
select * from tmp表

原先是执行完导入,我手动用sql server客户端 exec 过程a; 原先一开始也要12分钟;第2天,发现居然只要1分多钟。

现在我是想……