一般都用這兩種方法﹐你是什么寫的呢﹖
insert into tb(col1,col2,col3...) select col1,col2,col3... from ta where.........insert into tb(col1,col2,col3)
select a,b,c
union all select d,e,f
union all select j,k,l
......................要個體指明列名
insert into tb(col1,col2,col3...) select col1,col2,col3... from ta where.........insert into tb(col1,col2,col3)
select a,b,c
union all select d,e,f
union all select j,k,l
......................要個體指明列名
解决方案 »
- 求助:超大数据量MS-SQL2000数据导出
- 身份证提取性别
- 嵌套事务内部的commit后能否成为永久修改?
- 求一sql 语句,查询并修改后插入(在线急等)
- 怎样改变数据库及表的Collation
- 在表中存有一定数量的记录,可是不知怎么回事,表中的记录又多了一倍,多出来的记录为原来的记录,相当于又复制了一遍,删除、更改内容都不行,提示:(键列信息不足或不正确,更新影响到多列),望大家给出解决办法
- 怎么抓树的最底层?????
- MSDE初始用户名和密码是什么?
- 高手请进,怎样合并字符串?????????????????
- SQL2000导出数据库中表到c盘下的问题。
- 如何实现如下的“行变列”,急急急,100分
- SQL中的Sp_prepexec程储过程的用法
应该没有什么在要优化的了,我想是不是你的select 语句太复杂,你应该从这里着手
我是用insert into tableA (cola,colb,......) values(valuea,valueb,.......) 的方式,
插入几条后还要select一下,做些其他判断操作。
在SQL trace中跟踪了一下,发现这个操作执行了7000多条语句,其中select语句比insert要多。我想是不是要整合一下这些语句。用户是在一个维护终端通过远端网络操作的。
用insert into tableA (cola,colb,......) values(valuea,valueb,.......)
可以将所有的这样的插入语句放入一个批处里文件当中.在网络上一次性的将所有语句全部传输过去,然后执行插入操作.
2:最好将这一操作用存储过程进行,可以大大的提高系统性能.
3:在插入之前可以先将操作表的索引脚本拷贝出来,然后将此索引删除,在数据全部插入之后,在用拷贝出来的索引脚本在查询分析器中执行,重建索引.再用UPDATE STATISTICS对索引进行更新.
insert into tb(col1,col2,col3...) select col1,col2,col3... from ta where.........我想你肯定是用这种,你用二楼的第二种的话,一般不会有很多记录,那速度也不会慢到那里去!用这个可能后面的表太多! 这可能就是瓶颈!
1、表索引用问题,插入时需要更新太多的索引,或者是导致太多的索引分裂操作
2、后面的Select语句有问题,操作了7000多条数据,有可能是使用了表扫描,即没有正确的建立索引。
3、如果是大批量使用数据,建议使用BCP命令,这样可以在一分钟内插入大量数据,当然前提是服务器上关于Blug insert选项要开放。
\