我该如何在这个临时表上创建索引?

4

我正在尝试加快查询速度,但我对索引感到困惑。在这个表中,我应该如何添加索引?ID是唯一的,是否应该将其作为主键索引?

CREATE TABLE #OSP
    (
        [Id] UniqueIdentifier,
        [YearMonth] int,
        [Expenditure] decimal (7,2),
        [Permit] decimal (7,2)
    );

如果您正在按ID查询,则是主键/索引。 如果您不使用它进行查询,则索引将无法帮助... - forsvarir
那么,是的,这是创建正确的主索引/键。 - forsvarir
2个回答

3
您可以在您的"创建表"语句中指定"主键"。主键 create table
CREATE TABLE #OSP
    (
        [Id] UniqueIdentifier primary key,
        [YearMonth] int,
        [Expenditure] decimal (7,2),
        [Permit] decimal (7,2)
    );

2
+1 这是首选的,因为它使 #temp 表可缓存(并可以减少 #temp 表创建的数量)。 - Martin Smith

1

如果您是通过id进行连接,则在该字段上创建索引会有所帮助。

我认为这样做会起作用:

CREATE TABLE #OSP
    (
        [Id] UniqueIdentifier,
        [YearMonth] int,
        [Expenditure] decimal (7,2),
        [Permit] decimal (7,2)
    );


CREATE UNIQUE CLUSTERED INDEX [idx_id] ON #Osp ([Id] ASC)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接