ホームページ > データベース > Oracle > Oracleクエリ実行SQL

Oracleクエリ実行SQL

WBOY
リリース: 2023-05-18 11:19:07
オリジナル
6978 人が閲覧しました

データベース管理において、Oracle は非常に一般的に使用される重要なデータベースです。運用とメンテナンスでは、データベースの実行、特に実行された SQL ステートメントを監視することが必要になることが多く、これは SQL パフォーマンスの追跡と最適化に非常に役立ちます。この記事では、Oracle データベースで実行されている SQL ステートメントをクエリする方法を紹介します。

アクティブな SQL ステートメントをクエリするためのツール

Oracle は、アクティブな SQL ステートメントをクエリするためのツールをいくつか提供しています。これらのツールには次のものが含まれます。

  1. Oracle Enterprise Manager (OEM) - これは、Oracle が提供する視覚化ツールであり、アクティブな SQL ステートメントを含むデータベースの実行を簡単に表示できます。
  2. Oracle SQL Developer - これは、実行中の SQL ステートメントのクエリを実行し、SQL パフォーマンスを分析できる実用的な監視および分析ツールを含む、人気のある開発ツールです。
  3. Oracle に付属の SQL スクリプト - Oracle では、アクティブな SQL ステートメントをクエリするための SQL スクリプトをいくつか提供しています。これらのスクリプトは、Oracle Web サイトからダウンロードできます。

実行中の SQL ステートメントをクエリするための SQL スクリプト

Oracle データベースでは、2 つのシステム ビュー V$SESSION および V$SQL を使用して、アクティブな SQL ステートメントをクエリできます。

V$SESSION ビューには、各セッションで実行されている SQL 文の識別子である各セッションの SQL_ID を含む、現在アクティブなセッション情報がすべて含まれます。

V$SQL ビューには、SQL_ID、SQL_TEXT など、コンパイルされたすべての SQL ステートメントに関する情報が含まれています。

実行中の SQL ステートメントをクエリするための SQL スクリプトをいくつか示します:

  1. 実行中の SQL ステートメントの SQL_ID のクエリ

SELECT s. sid 、s.serial#、s.sql_id、s.sql_child_number、t.sql_text
FROM v$session s、v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.status = ' ACTIVE'
AND s.username <> 'SYS';

このスクリプトは、すべてのアクティブなセッションによって実行された SQL_ID と対応する SQL テキストを返します。

  1. 実行中の SQL ステートメントの詳細情報のクエリ

SELECT s.sid、s.serial#、s.username、s.status、t.sql_id、 t .sql_text、
s.last_call_et、s.logon_time、s.program、s.module、s.action
FROM v$session s、v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.status = 'ACTIVE'
AND s.username <> 'SYS';

このスクリプトは、アクティブなセッションによって実行された SQL_ID と、ユーザーを含む詳細な SQL 情報を返します。名前、ステータス、最近の実行時間、プログラム名、アクション、SQL テキストなど。

  1. ユーザーによって実行された SQL ステートメントをクエリします。

SELECT s.sid、s.serial#、s.username、s.status、t.sql_id、t 。 sql_text,
s.last_call_et, s.logon_time, s.program, s.module, s.action
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.status = 'ACTIVE'
AND s.username = 'your_username';

このスクリプトは、ユーザーによって実行されている SQL ステートメントと、対応する詳細情報を返します。

  1. 最初に実行された SQL ステートメントをクエリします

SELECT s.sid、s.serial#、s.username、s.status、t.sql_id、t.sql_text、
s.last_call_et、s.logon_time、s.program、s.module、s.action
FROM v$session s、v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.STATUS = 'ACTIVE'
AND s.username <> 'SYS'
AND s.sql_id IN (
SELECT MIN(sql_id)
FROM v$session
WHERE ユーザー名<> 'SYS'
AND STATUS = 'ACTIVE'
GROUP BY username
);

このスクリプトは、ユーザー名とステータス、最近の状態を含む、最初に実行された SQL ステートメントを返します。実行時間、プログラム名、アクション、SQL テキストなど。

  1. 最後に実行された SQL ステートメントをクエリします

SELECT s.sid、s.serial#、s.username、s.status、t.sql_id、t.sql_text、
s.last_call_et、s.logon_time、s.program、s.module、s.action
FROM v$session s、v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.STATUS = 'ACTIVE'
AND s.username <> 'SYS'
AND s.sql_id IN (
SELECT MAX(sql_id)
FROM v$session
WHERE ユーザー名<> 'SYS'
AND STATUS = 'ACTIVE'
GROUP BY username
);

このスクリプトは、ユーザー名、ステータス、最近の内容を含む、最後に実行された SQL ステートメントを返します。実行時間、プログラム名、アクション、SQLテキストなど。

概要

Oracle データベース管理では、実行中の SQL ステートメントをクエリする必要があることがよくあります。 Oracle は、アクティブな SQL 文をクエリするためのシステム ビューを提供します。これらのビューをクエリし、SQL スクリプトを使用することで、アクティブな SQL 文と関連情報を簡単にクエリして、SQL パフォーマンスを最適化および監視できます。同時に、Oracle Enterprise Manager および Oracle SQL Developer は、個人のニーズに応じて選択して使用できる SQL 文のクエリ機能も提供します。

以上がOracleクエリ実行SQLの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート