sql - 为什么 SQL 事务内部的更新仍然需要磁盘 IO?

标签 sql sql-server t-sql sql-server-2008 transactions

在 SQL Profiler 中,您可以看到通过主键对表进行非常简单的更新每次大约需要 10-30 毫秒。大约每 10 次更新,写入列就会显示 1,而在所有其他更新中,写入列就会显示 0。这必然意味着大约每 10 个更新语句仍然需要磁盘 IO。我不知道这是为什么。将所有 IO 排队直到事务提交不是更有效吗?

最佳答案

一旦您更新了一个大小为 10 000 000 条记录的表,您希望在哪里存储此类内存更新?

您希望在哪里存储事务日志。

尽管 RAM 看起来很充足,但我们不能假设它是无穷无尽的......

关于sql - 为什么 SQL 事务内部的更新仍然需要磁盘 IO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595313/

相关文章:

sql - 选择 WHERE 日期 = 天

sql - SQL中是否存在 "LIKE"和 "IN"的组合?

mysql - SQL组查询从两个表中获取数据

t-sql - 为什么有人会在 T-SQL 中的参数前面或后面添加空字符串?

sql - 如何以图形方式表示 SQL 查询

php - mysql对左表中的空值进行联接查询

mysql - 如何查询 2 个 SQL 表并使用 1 个查询更改数据

sql-server - 如何使用Golang SDK查询RDS的任何表格

sql-server - 使用 Sql Server Management Studio 2016 导入 bacpac 时出错 - 无法加载文件或程序集 Microsoft.SqlServer.Dac

sql-server - 如何捕获错误消息 "Error Converting data type varchar to decimal"