Jes*_*lam 26 sql sql-server-2005
我正在执行以下声明:
UPDATE TOP(1) dbo.userAccountInfo
SET Flags = Flags | @AddValue
WHERE ID = @ID;
Run Code Online (Sandbox Code Playgroud)
列'ID'是具有IDENTITY约束的INT PRIMARY KEY.标志是BIGINT NOT NULL.
执行路径指示正在发生聚簇索引更新.一个非常昂贵的操作.除主键外,没有包含Flags或ID的索引.我觉得实际的执行路径应该是:
聚集索引查找=>更新
Rem*_*anu 30
表有两种形式:聚簇索引和堆.您有一个PRIMARY KEY约束,因此您已隐式创建聚簇索引.你必须去额外的长度表中创建此不发生."表"的任何更新都是聚簇索引的更新,因为聚簇索引是表.至于聚集索引更新是一个"非常昂贵的操作",现在这是一个城市传说,围绕着关于数据库如何工作的基本错误信息.正确的语句是'影响聚簇键的聚簇索引更新必须更新所有非聚簇索引'.
| 归档时间: |
|
| 查看次数: |
20771 次 |
| 最近记录: |