Sql插入性能和表大小

时间:2014-01-08 05:37:54

标签: sql sql-server

在sql中,插入性能会根据表中的记录数而有所不同吗?我知道更新语句可能有所不同,但插入呢?

例如,具有1000万条记录的表中的insert语句是否与具有相同模式但是1k条记录的另一个表中的insert语句相同?

/*my schema*/
[id] [int] NOT NULL,
[type] [nvarchar](20) NOT NULL,
[relatedP] [int] NULL,
[relatedC] [int] NULL,
[eventdate] [DateTime] NOT NULL

/*no triggers and inserts as simple as*/
INSERT INTO myTable (id,type,relatedP,relatedC,eventdate) VALUES (@id,@type,@relatedP,@RelatedC,@date)

1 个答案:

答案 0 :(得分:2)

由于您的表似乎没有聚簇索引(既不是可导致默认聚簇索引的主键),也会将其创建为heap

此外,您的表也没有任何非聚集索引 - 通常,随着索引表中的行数增加,索引深度也将逐渐变为deeper,这意味着插入性能将是略有退化。

但是由于看起来你没有索引,约束,默认值,索引视图或持久计算列,因此随着表的增长,插入应该是恒定的时间。

(IMO a table with no indexing at all is fairly unusual - 过滤后的查询性能可能非常糟糕 - 通常这只对日志或登台数据有用,然后用读取器完全重新读取并处理成最终表格。)< / p>