1000 を超えるレコードを返すストアド プロシージャが 1 つあります。
検索テーブルの列に一時的な非クラスター インデックスを作成したいのは、非クラスター インデックスがデータ取得 (SELECT) 操作を高速化し、データ更新 (UPDATE および DELETE) 操作を遅くし、後でその非クラスター インデックスを削除すると聞いたからです。操作が完了しました。
UserDetails と CategoryMaster の 2 つのテーブルと検索フィールドがあるように:
- UserDetails (サービスの説明、スキル)
- カテゴリーマスター(名前)
これは私のストアドプロシージャです:
ALTER PROCEDURE [dbo].[SearchworkerProcedure1]
@SearchKeyword nvarchar(70)
AS
DECLARE @Keywords TABLE
(
sno INT IDENTITY(1,1) PRIMARY KEY,
keyname VARCHAR(100),
Shortkeyname as substring(keyname,0,5)
)
DECLARE @SearchKeywordTable TABLE
(
[VendorId] [int] NULL,
[ServiceDescription] [nvarchar](max) NULL,
[Skills] [nvarchar](max) NULL
)
INSERT INTO @Keywords SELECT * FROM [splitstring_to_table](@SearchKeyword,',')
BEGIN
--My Query
END
私のUserDetails作成クエリ:
CREATE TABLE [dbo].[UserDetails](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Fullname] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_UserDetails] 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]
ストアド プロシージャで一時的な非クラスター インデックスを作成し、選択操作の後にその非クラスター インデックスを削除することは可能ですか????