このクエリからパフォーマンスを絞り出そうとしています。助けていただければ幸いです。私にできることは、主キーで順序付けられているため、2番目のステートメントで順序を削除することだけです。
--SET STATISTICS TIME ON
DECLARE
@MasterAdGroupId Int = 3469476,
@IncludeDeleted Bit = 1,
@Deleted Bit = 0,
@IncludeDirty Bit= 0,
@Dirty Bit =1,
@IncludeDupes Bit=0,
@OrderByText Bit= 1,
@UseInDisplayNetworkOnly Bit=0
BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
IF @OrderByText=1
BEGIN
SELECT MasterKeywordId, Text, URL, MasterAdGroupId, mk.KeywordTemplateId, Dirty, mk.Deleted, Negative, Duplicate
FROM admanMasterKeyword_tbl mk
INNER JOIN admanKeywordTemplate_tbl kt on kt.KeywordTemplateId = mk.KeywordTemplateId
WHERE MasterAdGroupId = @MasterAdGroupId
AND mk.Deleted = CASE WHEN @IncludeDeleted=0 THEN @Deleted ELSE mk.Deleted END
AND Dirty = CASE WHEN @IncludeDirty=0 THEN @Dirty ELSE Dirty END
AND Duplicate = CASE WHEN @IncludeDupes=1 THEN Duplicate ELSE 0 END
AND UseInDisplayNetwork = CASE WHEN @UseInDisplayNetworkOnly=1 THEN 1 ELSE UseInDisplayNetwork END
ORDER BY Text
END
ELSE
BEGIN
SELECT MasterKeywordId, Text, URL, MasterAdGroupId, mk.KeywordTemplateId, Dirty, mk.Deleted, Negative, Duplicate
FROM admanMasterKeyword_tbl mk
INNER JOIN admanKeywordTemplate_tbl kt on kt.KeywordTemplateId = mk.KeywordTemplateId
WHERE MasterAdGroupId = @MasterAdGroupId
AND mk.Deleted = CASE WHEN @IncludeDeleted=0 THEN @Deleted ELSE mk.Deleted END
AND Dirty = CASE WHEN @IncludeDirty=0 THEN @Dirty ELSE Dirty END
AND Duplicate = CASE WHEN @IncludeDupes=1 THEN Duplicate ELSE 0 END
AND UseInDisplayNetwork = CASE WHEN @UseInDisplayNetworkOnly=1 THEN 1 ELSE UseInDisplayNetwork END
ORDER BY MasterKeywordId
END
END