私はテーブルを抽出するときにこれを取得します。テーブルには、ID列(autoinc)であるID
列があります。インデックスのID列または検索された列でSQLクエリを高速化しますか?
理論的には一意の読取り可能な顧客番号がありますが、これまでのところ表は適用されません。
私の顧客はIdではない顧客番号を検索しています。
私の質問は今のところ:CUSTERMERNUMBER
の列にインデックスを追加する必要があります(クラスタ化/非クラスタ化の場合は?) ID
フィールドが外部キーとして他のテーブルで参照されている場合
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE Customer
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[CUSTOMERNUMBER] [nvarchar](50) NULL,
-- other columns
CONSTRAINT [PK_Customer]
PRIMARY KEY CLUSTERED ([ID] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
はいインデックスが役立ちます。しかし、プライマリキーはすでにクラスタ化されたインデックスであるため、クラスタ化することはできません。あなたは本当にここでnvarcharを使用する必要がありますか?あなたの顧客番号の一部としてASCII文字以外の文字を設定する予定ですか? –
customernumberは "345345453543534"です。アルファベットの文字はありません。 – Elisabeth