1

.NOT を使用したクエリの検索に関する私の質問。SQL クエリの読み込みと処理にどちらが速いか混乱しています。SQL Server クエリを実装しましたが、SQL Server 2012 でインデックス検索を使用しているにもかかわらず、クエリが大きくなり、データのフェッチが遅くなります。

では、linq を使用してクエリを高速化する方法はありますか?

これが私のクエリの簡単な例です

SELECT
    counting 
FROM  
    xxxxxxx 
WHERE
   (Contains(BOOLEANTEXT, '"FORM"')) 
   AND ((Contains(BOOLEANTEXT, ' "FORM"  and  "WARRANT" ' ))) 
   AND ((Contains(BOOLEANTEXT, ' "RETURN"  or  "RESPECTING"  or  "ELECTION"  or  "EXPENSES" ')))  
   OR ((Contains(BOOLEANTEXT, 'Near((FORM,WARRANT,RETURN,RESPECTING,ELECTION,EXPENSES), 1000, TRUE)' ))) 
   AND ((Contains(BOOLEANTEXT, 'FORMSOF(INFLECTIONAL, FORM,WARRANT,RETURN,RESPECTING,ELECTION,EXPENSES)' ))) 
   AND ((Contains(BOOLEANTEXT, 'FORMSOF(THESAURUS, FORM,WARRANT,RETURN,RESPECTING,ELECTION,EXPENSES)' ))) 
ORDER BY 
   FORMTITLE ASC
4

1 に答える 1

2

いいえ、このクエリのパフォーマンスを で改善する方法はありませんLINQ

を使用するとわずかなオーバーヘッドも発生しますがLINQ、この場合は無視できることは確かです。

LINQ最終的にSQLは、データベースでも生成および実行されます。したがってLINQ、パフォーマンス上の利点はありません。

パフォーマンスを向上させたい場合は、このSQLステートメント自体を改善する必要があります。

ANDWHERE句を見ると、 のいずれかをその単一のに結合するための括弧はありませんOR。それはわざとですか?結果はすべての条件を満たしANDますOR ((Contains(BOOLEANTEXT, 'Near((FORM,WARRANT,RETURN,RESPECTING,ELECTION,EXPENSES), 1000, TRUE)' )))

これにより、予想よりもはるかに多くの結果が得られる可能性があります。


ANDとについてもう少しOR

-clauseWHEREは次のようになります。

(condition1 AND condition2 AND condition3 AND condition5 AND condition6)
OR condition4

私は、あなたが実際に次のようなことを意味していると思います:

condition1 AND condition2
AND (condition3 OR condition4)
AND condition5 AND condition6

-節が間違っているとは言いません。あなたが念頭に置いていた -clauseを得るために、どこかに余分な括弧が必要だと思うWHEREだけです。WHERE

ただし、括弧を追加する前に、読みやすくするために一部を削除しましょう。これはあなたと同じことをします:

WHERE
   Contains(BOOLEANTEXT, '"FORM"')
   AND Contains(BOOLEANTEXT, ' "FORM"  and  "WARRANT" ')
   AND Contains(BOOLEANTEXT, ' "RETURN"  or  "RESPECTING"  or  "ELECTION"  or  "EXPENSES" ')
   OR Contains(BOOLEANTEXT, 'Near((FORM,WARRANT,RETURN,RESPECTING,ELECTION,EXPENSES), 1000, TRUE)') 
   AND Contains(BOOLEANTEXT, 'FORMSOF(INFLECTIONAL, FORM,WARRANT,RETURN,RESPECTING,ELECTION,EXPENSES)') 
   AND Contains(BOOLEANTEXT, 'FORMSOF(THESAURUS, FORM,WARRANT,RETURN,RESPECTING,ELECTION,EXPENSES)')
于 2013-01-30T06:26:12.910 に答える