oracle

oracle

管理権限の確認(システム権限・オブジェクト権限とは別ものです)

Oracleには高度な管理操作を実行するために必要な「管理権限」が用意されています。これは一般的によく知られる「システム権限」や「オブジェクト権限」とは異なるものです。
oracle

Oracle オプティマイザ統計情報の取得、削除、取得状況確認

オプティマイザ統計にはいくつかの種類があり、かつそれぞれ適切なタイミングで取得する必要があります。基本的にはOracle任せでよいのですが、状況によっては管理者手動でプロシージャを適宜実行し統計情報の取得や削除を行う必要があります。以下に各種プロシージャをまとめました。
oracle

V$LOCKED_OBJECTで現在ロックされているテーブルを確認する

現在発生しているトランザクションが獲得しているロックを表示V$LOCKED_OBJECTを参照する事で現在ロックがされているテーブルを確認できます。ロックしているだけで誰にも迷惑をかけていない(誰も待たせていない)のであれば良いのですが、ロ...
oracle

SQL*Plusの戻り値を使いPowerShellへ値を渡す(Windows環境)

以前Linux環境を想定した記事を書いたのですが、Windows環境(PowerShell)でも同様な事を実現する事があったので今回記事としました。基本的にはLinux環境と同じですが新たな発見もありました。windows環境の場合、Lin...
oracle

Oracle DATE型の引き算で経過時間を見やすく表示する

バッチ処理等で経過時間を出力する際に出番があります。地味ですが意外と困っていらっしゃる方多いようなので記載してみました。経過時間表示SQLselect c1,to_char( to_date( (c3-c2)*24*60*60,'SSSSS...
動的パフォーマンス・ビュー

V$INSTANCE インスタンスが起動してからの経過時間を確認する

v$instanceを参照する事で確認できます。この動的パフォーマンスビューへアクセスできない場合はSELECT_CATALOG_ROLEを権限付与してください。
oracle

失効している統計情報のみを取得しなおす(分割実行)

SCOTTスキーマが持つテーブルの中で現在失効している統計情報を取得しなおすプロシージャです。無名ブロックで記載しているのでDBへのストアドは不要でお気軽です。fetch first xxx rows only の部分を適当に変えて使ってく...
oracle

V$ACTIVE_SESSION_HISTORY 待機イベントの発生を確認する

SQLを実行した時、実行プランは同じなのに実行タイミングによって実行時間が大きく変わるような場合があります。こんな時は想定外の待機イベントが発生している可能性が高いです。 AWRレポートを確認すれば良いのでしょうが、DBA_HIST_ACT...
oracle

統計情報をOracle任せにした際、対象となるオブジェクトを確認する

以下のプロシージャではOPTIONS =>'GATHER AUTO' と指定した場合、統計情報の取得対象をOracle任せにする事ができます。運用に携わる側としてはお気楽なのですが、たまに『実際には何が対象になるのだろうか』と確認したくなる...
oracle

Oracle テーブルのサイズ(使用状況)を調べる

たまに上司やお客様より「テーブルのサイズいくら?」と質問がきます。大抵の場合「このテーブルの存在はどの程度Disk容量を消費しているのだろうか」という事が知りたいようです。質問の通りテーブルのサイズを返答するだけでなく「インデックスのサイズ...