gpt4 book ai didi

sql-server - MS Sql Server 性能 UPDATing 单列与所有​​列

转载 作者:行者123 更新时间:2023-12-03 03:29:09 27 4
gpt4 key购买 nike

Win Srvr 2003+ 上的 MS SQL Srvr 2005/2008

我一次仅更新 1 行,更新是为了响应网络表单上的用户更改。

我正在使用 PK 更新表中的几列。该表有 95 列。通常会更新 1 个 FK 列和 1 或 2 个其他列。该表有 6 个 FK。

动态生成仅在 UPDATE 的 SET 部分中更改列的 UPDATE 语句对我有好处吗?还是坚持使用对所有列进行参数化更新的当前存储过程?

目前,网络表单中的数据不会立即更改,而是会发送回服务器并可供更新。我无法跳转到 AJAX 场景,此时仅将更改的数据从客户端浏览器发回服务器。

谢谢,G

最佳答案

SQL Server 读取和写入由 8kb 数据组成的“页”。通常,一页将包含一行或多行。

由于磁盘 I/O 是更新中最昂贵的部分,因此更新一半列和所有列的成本大致相同。它仍然会导致 8kb 磁盘 I/O。

还有另一个方面,通常不会发挥作用,因为 SQL Server 在 8kb 页面中写入。但想象一下你的行看起来像这样:

id int identity
col1 varchar(50)
col2 varchar(50)

现在,如果您将 col1 更新为长 5 个字节,则 col2 必须向前移动 5 个字节。因此,即使您不更新 col2,它仍然需要写入磁盘。

关于sql-server - MS Sql Server 性能 UPDATing 单列与所有​​列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8683412/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com