2

システム(Oracle 10g)で非常に大きい2つのテーブルを比較しようとしています。私が比較していた方法は、「マイナス」演算です。テーブルのサイズが大きいため、一時テーブルスペースの使用状況をリアルタイムで知りたいです。

一時テーブルスペースの使用法を取得する方法について、どういうわけかグーグルで検索しました。しかし、どちらが正しいかはわかりません.3つの方法があります:

1. V $ TEMP_SPACE_HEADERからTABLESPACE_NAME、BYTES_USED、BYTES_FREEを選択します。

2. V $ TEMP_EXTEND_POOLからBYTES_USED、BYTES_CACHEDを選択します

   What is the difference of BYTES_USED and BYTES_CACHED

3. USED_EXTENDS、USED_BLOCKS v$sort_segmentを選択します

3つの方法は本当に私を混乱させました、そして私は違いが何であるかわかりません。

4

2 に答える 2

3

動的パフォーマンスビューv$sql_workareaおよびv$sql_workarea_activeを見てください。これらは、クエリで使用されているスペースの量だけでなく、実行プランのさまざまなフェーズに起因するスペースの量、どのような種類のスペースかを示します。エリア(ハッシュ結合など)とその使用方法(ワンパスなど)。これは、パフォーマンス調整のはるかに効果的な方法になります。

于 2013-03-26T09:44:49.790 に答える
0

V $ SORT_SEGMENTビューを使用して、TEMPORARY表領域の使用済み/空きエクステント、使用済み/空きブロック情報を取得できます。

V$TEMP_SPACE_HEADERビューとV$TEMP_EXTEND_POOLビューはほぼ同じであり、使用済みバイト情報を提供します。ただし、V $ TEMP_EXTEND_POOLは、DBが再起動されたとき、または表領域が再作成されたときにのみ前者が更新されるため、信頼できます。

注意: Oracle 11gから、DBA_TEMP_FREE_SPACEビューを使用してTEMPORARY表領域情報を取得できます。

于 2019-04-24T08:40:04.867 に答える