写入SQL数据库比读取速度慢吗?

时间:2014-06-13 14:02:48

标签: sql-server

我正在为每个迭代使用64KB的数据库写一个10MB的文件(blob)。但是,这花费的时间几乎是从数据库中读取相同文件的两倍,读取数据库是否比写入数据库更快是正常的?

谢谢

2 个答案:

答案 0 :(得分:2)

是的,写作通常比阅读慢。当只从数据库中读取时,它不必担心如下:

  • 锁定行/页面/等(取决于隔离级别)
  • 在数据文件中分配更多空间
  • 将行添加到事务日志
  • 将数据刷新到磁盘
  • 更新索引
  • 执行完整性检查

等等。读取只是直接从磁盘读取,或者可能只是从RAM返回缓存数据。

答案 1 :(得分:0)

没有任何其他信息我会说它是因为你的事务隔离范围...另一个猜测是你的表太大而你的聚集索引正在影响整个操作......

更直接的答案是:它可能并且比您想象的更频繁发生......如上所述,群集索引和锁定会对其产生重大影响,因为:

  • 群集索引指示磁盘中数据的物理顺序。
  • 取决于“密钥”(不是你的主键,而是索引的键......是的,它们可以是不同的)通过插入一个文件来强制进行大规模的级联改变
  • 如果你使用像桌锁这样的东西,并且在插入时发生了其他操作,你的陈述将不得不等待那些完成......