ちょっとguys、 SQL Serverで実行に最低10〜15秒かかるクエリがあります。これがasp.netで呼び出されると、最悪の場合は要求のタイムアウトがスローされますエラー。SQLサーバーのインデックス問題
以下は私が使用しているクエリです。
SELECT C.Id,
C.Summary,
C.Title,
C.Author,
CONVERT(VARCHAR(12), C.PublishDate, 104)
AS 'DATE',
'/Article/' + SUBSTRING(dbo.RemoveSpecialChars(C.Title), 0, 10) + '/' + CAST(CA.CategoryId AS VARCHAR(MAX)) + '/' + CAST(C.Id AS VARCHAR(MAX)) +
'.aspx' AS
'URL'
FROM CrossArticle_Article C
INNER JOIN CrossArticle_ArticleToCategory CA
ON C.Id = CA.ArticleId
WHERE C.Title LIKE '%' + @KEYWORD + '%'
OR C.Summary LIKE '%' + @KEYWORD + '%'
OR C.Article LIKE '%' + @KEYWORD + '%'
SELECT @@ROWCOUNT
下記はフィールド仕様です。
Id int Primary Key
Summary nvarchar(1000)
Title nvarchar(200)
Author nvarchar(200)
PublishDate DateTime
CategoryId int PrimaryKey
私はネット上で確認しますが、解決策を見つけるdidntの。これには、使用してこれらの列にインデックスを使用して解決することができると思います。..
私は同じのための助けを得ることができれば、私は感謝。 ありがとう、ありがとうございます。 Abbas Electricwala
このためにはフルテキストインデックスを調べる必要があります。テーブルの3つの列でワイルドカード検索を実行しているため、クラスタ化インデックススキャンはこのクエリの唯一の合理的な計画/インデックス作成です。 'CrossArticle_Article'にはいくつの行がありますか? –
@Martin:crossarticle_articleには約22000件のレコードがあります。私はこの問題を解決するためにフルテキストインデックスを使用する方法を教えてください – Abbas