1

SSAS キューブのデータ ソース ビューとして使用するインデックス付きビューを設定しました。インデックス付きビューは次のようになります。

create view vw_indexed1 with schemabinding
as

select 
key1, 
key2, 
count_big(*) as bigcount 
from
table1
group by
key1, 
key2, 
GO


CREATE UNIQUE CLUSTERED INDEX [PX_vw_indexed1] ON [dbo].[vw_indexed1] 
(
key1, 
key2, 
)WITH 
(PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = ON, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

さて、select * from vw_indexed1おそらく基になるテーブルのインデックスを拡張しようとしているために、時間がかかるのでselect * from vw_indexed1 with (noexpand)、クラスター化されたインデックスを持つテーブルで直接選択するのと同じように実行する を使用します。

私の質問は次のとおりです。このビューを SSAS プロジェクトの DSV として使用する場合、基になるインデックスを毎回使用しようとしますか? vw_indexed1もしそうなら、どうすればそれを独自のインデックスを持つテーブルと見なすことができますか?

4

1 に答える 1

1

ある種。それ自体がselect*from vw_indexed1ステートメントであるビューを指すDSVを使用することで、問題を少し強制することができます。

ただし、選択しなかった理由は、SQLServerエンジン自体がインデックス付きビューを使用するかどうかを決定するためです。DSVがそれを指し示していたとしても、それが行うのは、テーブルやインデックス付きビューにクエリを送信することだけです。実際、DSVは基になるファクトテーブルを指すことができ、プロファイラートレースを見ると、状況によっては、テーブル自体を指定した場合でも、インデックス付きビューが選択されます。

この動作の背後にある詳細については、 http: //msdn.microsoft.com/en-us/library/ff956108(v = sql.100).aspxにあるホワイトペーパーAnalysis Services ROLAP forSQLServerデータウェアハウスを確認してください。

于 2012-11-04T16:21:20.380 に答える