在 SQL Profiler 中,您可以看到通过主键对表进行非常简单的更新每次大约需要 10-30 毫秒。大约每 10 次更新,写入列就会显示 1,而在所有其他更新中,写入列就会显示 0。这必然意味着大约每 10 个更新语句仍然需要磁盘 IO。我不知道这是为什么。将所有 IO 排队直到事务提交不是更有效吗?
最佳答案
一旦您更新了一个大小为 10 000 000 条记录的表,您希望在哪里存储此类内存更新?
您希望在哪里存储事务日志。
尽管 RAM 看起来很充足,但我们不能假设它是无穷无尽的......
关于sql - 为什么 SQL 事务内部的更新仍然需要磁盘 IO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595313/