SQL Server 2014には、モデルの処理中に、リレーショナルクラスター化列ストアテーブル(800 mio。レコード)をクエリするSSAS表形式モデルがあります。クエリは、結合やフィルターなどのない単純なSELECTステートメントです。SQLServerエージェントジョブによって起動されるXMLAコマンドを使用してモデルを処理しています。処理には数時間かかります。
処理の進行状況を知るために、SELECTステートメントによってこれまでに返されたレコードの数を知りたいと思います。 SELECTステートメントのSPIDがわかっている場合、これを行う方法はありますか?
sys.dm_exec_requests
レコード数情報が含まれていないようです。
また、Analysis ServicesのDMVを調べて、これらのオブジェクトのいずれかが必要な情報を提供できるかどうかを確認しようとしましたが、運がありませんでした。
どういうわけかこの情報を取得できるはずだと思う理由は、SSMSのグラフィカルなIDE)を介して表形式のモデルを処理すると、処理中に実際に行数が表示されるためです。
更新:sys.dm_exec_requests
DMVには実際にはrow_count
列。残念ながら、このコラムの内容は現実を反映していないようです。処理の最初の1時間ほどは「3」の値でしたが、経験から、最初の1時間以内に数百万のレコードが返されることがわかっています。
SQL Server ProfilerをSSASに接続し、 Progress Report Current イベントをEventSubclass = ReadDataで監視する場合、 IntegerData列には、そのSSASパーティションについてこれまでに読み取られた累積行が表示されます。
Integerdata:処理イベントのために処理された行数の現在のカウントなど、報告されたイベントに関連付けられた整数データが含まれます。