0

次のように、特定の ID (ここでは 406f-871b-a3ee71f7038) に基づいて情報を取得するよう求められます。

select * from BIG_Session (nolock)
where SessionSID like '%406f-871b-a3ee71f70386%'

これは非効率ですか?それが終わるのを待つのにどれくらい時間がかかりますか? 30秒待って長すぎると感じ、キャンセルしました。

4

2 に答える 2

2

プレフィックスのワイルドカード文字を使用してスキャンを実行します%。それが文字列の先頭になることがわかっている場合406f...は、可能なシークを利用できます。

select * from BIG_Session
where SessionSID like '406f-871b-a3ee71f70386%'

最初のパーセント記号を取り出したことに注意してください。

それが終わるのを待つのにどれくらい時間がかかりますか?

それは、あなた、あなたの環境、ユーザー、およびビジネス要件に許容される期間によって異なります。特定の状況/環境では 30 秒が許容されますが、他の状況では有害です。

于 2012-06-15T14:52:57.160 に答える
1

=特定の ID を検索している場合は、次の方法よりも効率的だと思いますLIKE

select * from BIG_Session (nolock)
where SessionSID = '406f-871b-a3ee71f70386'

どれくらいの長さかというと、それは主観的なものであり、環境と期待の詳細を知らずに定量化することは困難です.

の使用に関して、この SO の質問を読む価値があるかもしれませんNOLOCK: NOLOCK (Sql Server ヒント) は悪い習慣ですか?

于 2012-06-15T14:54:04.977 に答える