今週のPASSサミットに先立ち、SQL Server 2016に関する数十から数十の発表がありましたが、しばらくの間CTPに隠されていた機能について少し説明したいと思いましたが、Microsoftにはチャンスがありませんでした。公開するには:ServiceBrokerキューで利用可能な追加のメンテナンス操作。
Remus Rusanu(@rusanu)は、この投稿で、大量の断片化がキューの原因となる可能性がある問題について説明しました:
- 大きなキューの処理
そこで彼は、実際にDBCC REINDEX
を使用できることを明らかにしました。 内部テーブルに対してですが、内部テーブル名を決定し、DACを介して接続する必要がありました。必ずしも便利ではありません。
現在、ほぼ6年後、高負荷が原因で断片化の問題が発生していると思われる場合は、インデックスを強制的にREORGANIZE
できます。 またはREBUILD
キューを直接参照することによるキューの内部テーブルに対する操作:
ALTER QUEUE dbo.myQueue REORGANIZE; -- or ALTER QUEUE dbo.myQueue REBUILD;
キューにどれだけの断片化があるかをどうやって知るのですか?さて、キューはsys.dm_db_index_physical_stats
に渡すことができるオブジェクトとして追加されました 、も:
SELECT * FROM sys.dm_db_index_physical_stats ( DB_ID(), OBJECT_ID(N'dbo.QueryNotificationErrorsQueue'), -1, 0, 'SAMPLED' );
また、通常のテーブルの同じ問い合わせと同様の出力が得られます。
さらに、キューを別のファイルグループに移動できます。この操作により、内部キューテーブルとそのすべてのインデックスが新しいファイルグループに再構築されます。
ALTER QUEUE dbo.myQueue MOVE TO [MY_FILEGROUP];
これらの新機能により、ServiceBrokerソリューションのスケーラビリティが向上するはずです。