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 に答える