向有索引的表insert 时 当表记录几百万时会很慢嘛?

时间:2021-10-07 23:28:57
数据库  sql server 2000

随着表记录不断增多  会越来越慢吗 

会影响insert 速度吗  

12 个解决方案

#1


肯定会随着记录越来越多而越来越慢。
insert不会有太大影响
最主要的影响是在查询的时候

#2


引用楼主 chinawcs 的回复:
数据库 sql server 2000

随着表记录不断增多 会越来越慢吗 

会影响insert 速度吗
插入时,如果你的索引是唯一索引,需要去检查是否重复,会减慢插入速度.当然记录越多,检查的时间越长.

#3


数据量越大查询速度是会减慢的,相应的用的时间也就越长。
另外索引是唯一的还要检查是否有重复。

#4


表中确实有 唯一索引 也有普通索引  

那我先去掉索引 数据写入完毕后 再添加索引 是否可行  ?


#5


这样也可以,但得确保主键索引的唯一性。

#6


主键是 guid  唯一性可确保  

现在主要是保速度  几百万数据要写入数据库  

#7


肯定会影响速度的。插入时,除了数据操作,还要维护索引和各种检查。
去掉索引,再插入会快一些。楼主可以考虑一下BULK操作啊,很快。

#8


BULK  我知道  但这个 需要客户端 组配的 sql 很复杂 不是 读取txt  导入 table

#9


insert 之前 我还要查重 

是不是 先把插入的内容 写入到txt  最后再 bulk ?

#10


引用 8 楼 chinawcs 的回复:
BULK  我知道  但这个 需要客户端 组配的 sql 很复杂 不是 读取txt  导入 table

BULK操作其实有很多种方式的,不只是用来导TXT的。你可以看一下联机丛书。

#11


BULK 速度是快 但是要求 数据文件 再服务器本地 

假如我要从客户端导入 这怎么办

#12


客户导入。可以借助其它编程语言,我只知道ado.net里有专门的类来实现bulk操作的。楼主可以查看一下,msdn. http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy(VS.80).aspx

#1


肯定会随着记录越来越多而越来越慢。
insert不会有太大影响
最主要的影响是在查询的时候

#2


引用楼主 chinawcs 的回复:
数据库 sql server 2000

随着表记录不断增多 会越来越慢吗 

会影响insert 速度吗
插入时,如果你的索引是唯一索引,需要去检查是否重复,会减慢插入速度.当然记录越多,检查的时间越长.

#3


数据量越大查询速度是会减慢的,相应的用的时间也就越长。
另外索引是唯一的还要检查是否有重复。

#4


表中确实有 唯一索引 也有普通索引  

那我先去掉索引 数据写入完毕后 再添加索引 是否可行  ?


#5


这样也可以,但得确保主键索引的唯一性。

#6


主键是 guid  唯一性可确保  

现在主要是保速度  几百万数据要写入数据库  

#7


肯定会影响速度的。插入时,除了数据操作,还要维护索引和各种检查。
去掉索引,再插入会快一些。楼主可以考虑一下BULK操作啊,很快。

#8


BULK  我知道  但这个 需要客户端 组配的 sql 很复杂 不是 读取txt  导入 table

#9


insert 之前 我还要查重 

是不是 先把插入的内容 写入到txt  最后再 bulk ?

#10


引用 8 楼 chinawcs 的回复:
BULK  我知道  但这个 需要客户端 组配的 sql 很复杂 不是 读取txt  导入 table

BULK操作其实有很多种方式的,不只是用来导TXT的。你可以看一下联机丛书。

#11


BULK 速度是快 但是要求 数据文件 再服务器本地 

假如我要从客户端导入 这怎么办

#12


客户导入。可以借助其它编程语言,我只知道ado.net里有专门的类来实现bulk操作的。楼主可以查看一下,msdn. http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy(VS.80).aspx