从4个表里面组合数据写入另一个表,7万条用了50多秒,这个速度怎么?怎么提高insert的速度
从4个表里面组合数据写入另一个表,7万条用了50多秒,这个速度如何?如何提高insert的速度?
我有4个表,A表有500条数据, B表有8条,C表有3条, D表有6条,现在用交叉组合成72000条数据,写入另外一个表中,用存储过程实现,耗时50秒左右,这个速度算不算快啊?有没有什么办法能提高速度的?
------解决方案--------------------
不好说,这与机器配置、以及你表间关系的复杂程度等都有关系的。。。
------解决方案--------------------
以现有DBMS的基本原理.
写入数据的话,有索引会更慢.
索引是让查的人快,让写的人慢.
------解决方案--------------------
链接服务器当然比较慢。
另外大量插入数据时,先drop掉索引,插入完再建立。不过建立索引也还是需要一会儿。
如果在非工作时间处理,先解决问题为要,快几秒慢几秒有啥关系。
------解决方案--------------------
ABCD这4个表的数据少得可以忽略(相对于索引的应用而言),各种不同的DBMS,使用索引是有一定条件的(比如不少于200条,低于此限的,有索引也不会帮你用,因为更慢.)
你试试看,不要用
for ...//ORACLE
或
while ...//sqlserver
而是直接用
insert into t_table(c1,c2,c3,c4)
select a.c1,b.c2,c.c3,d.c4 from a,b,c,d
有可能更快。
我有4个表,A表有500条数据, B表有8条,C表有3条, D表有6条,现在用交叉组合成72000条数据,写入另外一个表中,用存储过程实现,耗时50秒左右,这个速度算不算快啊?有没有什么办法能提高速度的?
------解决方案--------------------
不好说,这与机器配置、以及你表间关系的复杂程度等都有关系的。。。
------解决方案--------------------
以现有DBMS的基本原理.
写入数据的话,有索引会更慢.
索引是让查的人快,让写的人慢.
------解决方案--------------------
链接服务器当然比较慢。
另外大量插入数据时,先drop掉索引,插入完再建立。不过建立索引也还是需要一会儿。
如果在非工作时间处理,先解决问题为要,快几秒慢几秒有啥关系。
------解决方案--------------------
ABCD这4个表的数据少得可以忽略(相对于索引的应用而言),各种不同的DBMS,使用索引是有一定条件的(比如不少于200条,低于此限的,有索引也不会帮你用,因为更慢.)
你试试看,不要用
for ...//ORACLE
或
while ...//sqlserver
而是直接用
insert into t_table(c1,c2,c3,c4)
select a.c1,b.c2,c.c3,d.c4 from a,b,c,d
有可能更快。