聚簇索引和非聚簇索引对特定查询的影响

问题描述 投票:0回答:0

我在一本书中发现了以下问题:

给出了表 Employees(empid INT, age INT, salary DECIMAL(6,2), departmentid INT)。 empid 字段上有一个聚集索引,age 字段上有一个非聚集索引。对于以下每个更新命令,请回答它是否加速、减速或不受上述指标的存在影响。

  1. UPDATE Employees SET 年龄 = 年龄 + 1
  2. 更新员工 SET salary = salary * 1.10 WHERE empid >=1 and empid <=100
  3. 更新员工 SET salary=salary * 1.10 WHERE departmentid = 10

这是我的答案。我只想有人验证我的思维过程是正确的:

  1. 所有指数都没有影响。非聚集索引没有作用,因为我们选择了所有的“age”值,没有WHERE语句。索引不需要更新。

  2. 聚集索引会加速更新命令,因为它可以快速定位empid值在1到100之间的行。age字段上的非聚集索引在这个更新命令中没有使用,不会影响其性能。

  3. 如果departmentid字段有索引,更新会更快,因为数据库可以利用索引快速找到匹配的行。但是,我们在 departmentid 字段上没有索引。 2 个现有索引没有效果。

sql-server indexing database-design
© www.soinside.com 2019 - 2024. All rights reserved.