0

我创建了一个表,其中我使用唯一标识符(GUID)作为表的主键。现在我需要在我的表上创建一个最适合我的索引..我将使用这个表来记录错误。

以下是我的表结构

CREATE TABLE [dbo].[errors](
[error_id] [uniqueidentifier] NOT NULL,
[assembly_name] [varchar](50) NULL,
[method_name] [varchar](50) NULL,
[person_id] [int] NULL,
[timestamp] [datetime] NULL,
[description] [varchar](max) NULL,
[parameter_list] [varchar](max) NULL,
[exception_text] [nvarchar](max) NULL) 

那么我使用哪个表作为主键和索引。

提前致谢。

4

1 回答 1

1

您可以将其用作 PK,但如果将其用作聚集索引则效果不佳。在这种情况下,GUID 将被复制到所有 nc 索引键中,从而使它们更宽,并可能导致性能问题。此外,这可能会导致页面溢出这不好。宽索引意味着将使用更多空间。如果您使用 GUID 来避免最后一页争用问题,请尝试使用某种散列技术来确保数据在差异页面上进行。但在这种情况下,您有在使用 PK 选择表单表时使用相同的散列。

于 2012-07-16T09:37:59.713 回答