質問

Oracleには、共有SQL領域の統計をリストし、SQL文字列ごとに1つの行を含むV $ SQLAREAと呼ばれるビューがあります。これは、メモリ、解析、および実行の準備ができているSQLステートメントの統計を提供します。

このSQLステートメントに代わって処理された行の総数を合計する列-ROWS_PROCESSEDが1つあります。

SQLServer 2005で担保情報を探しています。

私はDMVのいくつかを見ました(sys.dm_exec_query_statsなど)が、関連するものは見つかりませんでした。

@@ rowcountは、データベースのトップCPU/io/実行消費クエリのrows_processedを合計する増分統計情報が必要なので、私にとって役に立ちません。

主題に関してどんな助けにも感謝します。

前もって感謝します、

ロニ。


次のクエリを照会すると、XMLでクエリプランを受け取ることがわかりました。

XMLプランコード内には、クエリの推定行の数に相関する数の「推定値」部分があります。

Query_Plan列をsubtrするオプションを考えています。上記の情報のみを再調整します(システムビュー/テーブルで見つける場合を除く)。

クエリの実際の行数はどこにありますか?どこに保管されていますか?

SELECT 
       case when sql_handle IS NULL
           then ' '
           else ( substring(st.text,(statement_start_offset+2)/2,       
   (case when qs.statement_end_offset = -1         
   then len(convert(nvarchar(MAX),st.text))*2      
   else statement_end_offset    
   end - statement_start_offset) /2  ) )
        end as query_text , 
    query_plan,
 FROM sys.dm_exec_query_stats qs 
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle)
cross apply sys.dm_exec_sql_text(sql_handle) st;
役に立ちましたか?

解決

私の知る限り、特にrowCountsには直接的な同等物はありません。関連するDMVSトラックIOコストは、欠落しているインデックス付き、最も高価なクエリなどを表示するために使用されます。

これにより、現在のセッションのSQLステートメントあたりの統計が得られます。 YMMV:私が横たわっているスクリプトに基づいてそれをまとめました。

SELECT 
    *
FROM 
    sys.dm_exec_query_stats  QS
    CROSS APPLY 
    sys.dm_exec_sql_text(sql_handle) ST

私のスクリプトはリンクiに基づいています ここで言及されています

他のヒント

システム変数@@ rowcountを使用して、最後のステートメントの影響を受けるレコードの数を知ることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top