次のように、特定の ID (ここでは 406f-871b-a3ee71f7038) に基づいて情報を取得するよう求められます。
select * from BIG_Session (nolock)
where SessionSID like '%406f-871b-a3ee71f70386%'
これは非効率ですか?それが終わるのを待つのにどれくらい時間がかかりますか? 30秒待って長すぎると感じ、キャンセルしました。
次のように、特定の ID (ここでは 406f-871b-a3ee71f7038) に基づいて情報を取得するよう求められます。
select * from BIG_Session (nolock)
where SessionSID like '%406f-871b-a3ee71f70386%'
これは非効率ですか?それが終わるのを待つのにどれくらい時間がかかりますか? 30秒待って長すぎると感じ、キャンセルしました。
プレフィックスのワイルドカード文字を使用してスキャンを実行します%
。それが文字列の先頭になることがわかっている場合406f...
は、可能なシークを利用できます。
select * from BIG_Session
where SessionSID like '406f-871b-a3ee71f70386%'
最初のパーセント記号を取り出したことに注意してください。
それが終わるのを待つのにどれくらい時間がかかりますか?
それは、あなた、あなたの環境、ユーザー、およびビジネス要件に許容される期間によって異なります。特定の状況/環境では 30 秒が許容されますが、他の状況では有害です。
=
特定の ID を検索している場合は、次の方法よりも効率的だと思いますLIKE
。
select * from BIG_Session (nolock)
where SessionSID = '406f-871b-a3ee71f70386'
どれくらいの長さかというと、それは主観的なものであり、環境と期待の詳細を知らずに定量化することは困難です.
の使用に関して、この SO の質問を読む価値があるかもしれませんNOLOCK
: NOLOCK (Sql Server ヒント) は悪い習慣ですか?