sha*_*oth 2 index sql-server primary-key azure-sql-database
这是此处表定义的一部分:
CREATE TABLE [dbo].[JobItems] (
[ItemId] UNIQUEIDENTIFIER NOT NULL,
-- lots of other columns
CONSTRAINT [PrimaryKey_GUID_HERE] PRIMARY KEY NONCLUSTERED ([ItemId] ASC)
);
CREATE UNIQUE CLUSTERED INDEX [JobItemsIndex]
ON [dbo].[JobItems]([ItemId] ASC);
Run Code Online (Sandbox Code Playgroud)
这是一些遗留设计,所以请不要问“为什么”。无论如何,当我查找索引列表时,我看到有两个索引 - 其中一个是JobItemsIndex,另一个是PK-GUID-HERE,它们都用于JobItems表。
我的问题是...
为什么需要一个单独的索引来维护 PK,当我已经拥有JobItemsIndex它是唯一的并且包含非常相同的列并且适合维护 PK 约束时?
它不需要单独的索引。之所以这样做,是因为您实际上已经告诉它在脚本中。您可以使用相同的功能执行此操作:
CREATE TABLE [dbo].[JobItems] (
[ItemId] UNIQUEIDENTIFIER NOT NULL,
-- lots of other columns
CONSTRAINT [JobItemsIndex] PRIMARY KEY CLUSTERED ([ItemId] ASC)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
383 次 |
| 最近记录: |