0

数年前、StackOverflow で、大きなキュー内のメッセージ数の取得について質問がありました。

テーブルが 50 万行を超える場合、Service Broker Queue のサイズをすばやく取得するにはどうすればよいですか?

基礎となる b ツリーを照会するための回答が与えられました。

http://rusanu.com/2006/11/09/fast-way-to-check-message-count/

キューに複数の MessageTypes がある場合、MessageType によってフィルター処理されたカウントを使用して、基になる b ツリーに対して同じクエリを実行する方法はありますか?

この方法で実行できますが、大きなキューでパフォーマンスの問題が発生する可能性があることを懸念しています.

SELECT COUNT(*) FROM My_Queue WHERE message_type_name = 'MyMessageType'
4

1 に答える 1

1

いいえ - B ツリーのクエリは、実際のデータ構造を見ています (すべてのリレーショナル データベースが構成されていると考えるテーブルの概念は、それ自体、実際にはその下にあるものではありません)。

残念ながら、列の値をフィルタリングする唯一の方法は、テーブルに対してクエリを実行することです。

于 2013-09-04T20:43:46.307 に答える