0

最近、一連の Oracle SQL クエリを、パイプライン処理されたデータを返すテーブル関数を含むパッケージに移動しました。

しかし、私は異常なことを観察し始めました。buffer_gets、fetches、cpu_time、execution_time などの V$SQL 統計は、累積数を示し始めており、クエリを実行するたびに高くなり続けています。

これは通常の動作ですか?

4

1 に答える 1

2

それは予想される動作です。

多くの共有リソースが関係しています。プール内に多数のデータベース接続を持つアプリケーションがあり、すべてが同じ種類の作業を行っている場合、複数のユーザーが同時にフェッチする SQL を持つことができます (たとえば、接続 1 は ABC の請求書を取得し、接続 2 はは XYZ の請求書を受け取っています)。V$SQL (または RAC 環境では GV$SQL) は、ほとんどの詳細の累積合計を表示します (また、USERS_EXECUTING などは、すべてのセッションの現在の値になります)。

リセットされるのは、SQL が共有領域から期限切れになったときだけです。通常、しばらく使用されておらず、リソースが別の SQL に必要な場合や、データベースのシャットダウンなどのまれなイベントが発生した場合です。

于 2016-08-30T03:51:05.540 に答える