2017-11-27 10 views
-1

Iそのテーブルで1つのパーティションテーブルとクラスタ化されていないインデックスが作成されている場合、そのテーブルをクエリしているときにインデックスシークを示していますが、 私はどのパーティションからSQL Serverがデータをフェッチしているのかを確認することにしました。したがって、見積もりと実際の実行計画を調べましたが、どのパーティションのデータが取得されるのかわかりません。SQL Serverのパーティションから取得したデータを確認する方法

私は私のポストにか表示されます画像の下のかどうかわからない(私は私の意図は、SQL Serverは、パーティションを修正するために当たっているかどうかをチェックすることですデータをフェッチしながら、多くのパーティションにスキャンされたか意味しました)私は評判があまりないので、私はそれを許してください。

Execution Plan for my Query

enter image description here

Actual Execution Plan of Query

enter image description here

+0

すべてのパーティションから読み取った行がある可能性があります。代わりに、これは実際のクエリを表示できますか?最適化できるものがありますか? – gotqn

+0

親愛なる@Yogesh Sharma with with(index(IX_MV)) 左からjoin bを左(right(mobileno、10)、5)= b.phoneseries から選択して、トランザクションの予定、mobileno、ステータス、b.operator、b.circleここで、transactiondate> = '24-nov-2017'とtransactiondate <'25 -nov-2017 'と のIDを入力してください(CからIDを選択してDEPLOYMENTID =' 1511516069340006931 ' とrecordtype =' 103 ') –

+0

これは役立ちます:https ://stackoverflow.com/a/5156185/6305294 – Alex

答えて

1

私はあなたが行っている場所を取得するには$PARTITION機能(ドキュメントhere)を使用することができると思います。本質的には、パーティション関数とそのパーティション関数の引数と一緒に呼び出すと、パーティション番号が返されます。

select $PARTITION.PF_Orders__date_created(date_created), 
    count(*) 
from dbo.Orders 
group by $PARTITION.PF_Orders__date_created(date_created) 
order by $PARTITION.PF_Orders__date_created(date_created); 
:たとえば

、のは、私はパーティションで設定されたデータの行のヒストグラムを取得するには、次のクエリを書くことができPF_Orders__date_created Iと呼ばれるパーティション機能を使用してDATE_CREATEDに月ごとに分配したOrdersテーブルを持っていたとしましょう

関連する問題