oracle

oracle

Oracle セグメント縮小とHWMを下げる(ALTER TABLE SHRINK SPACE)

実行手順alter table xxxxx shrink space cascade とすると表とインデックスのセグメント縮小を行いかつHWMを下げてくれます。注意点としては直前に「行移動の有効化」をする必要があります。DBA_TABLES...
oracle

Oracle ORA-01653 が発生した時の対応方法

ORA-01653 発生原因-- 以下エラーがでた時の状況です。行1でエラーが発生しました。:ORA-01653: 表SOONI.TBL27を拡張できません(128分、表領域TBS01)。これは表領域がいっぱいになった時に発生するエラーです...
oracle

Oracle 行ロックで待たされているSQLと対象レコードを特定する

DBMS_ROWID.ROWID_CREATE()でROWIDを作成するV$SESSIONのBLOCKING_SESSION_STATUSを見れば行ロックが原因で待たされているSQLと対象レコードの特定ができます。レコードの特定はDBMS_...
oracle

Oracle アラートログとトレースファイルをSQLで確認する

アラートログをSQLにて確認する本来アラートログは2種類のファイルに出力されますが、V$DIAG_ALERT_EXTを参照すれば両方まとめて確認できますし、キーワード検索などもでき大変便利です。ただ一点不満なのはGV$ DIAG_ALERT...
oracle

SQL_IDでSQL_FULLTEXTを出力する

過去実行したSQLはV$SQLやV$SQLAREAのSQL_TEXTから取得する事できますが、1000バイトを超えるSQLはSQL_FULLTEXTを参照する必要があります。ただしSQL_TEXTと異なり改行コードが含まれている事や、SQL発行ツール自体が VARCHAR2(4000)を 超える文字列を表示できない制限があって期待通りの表示ができません。これら課題をクリアするため以下テーブルファンクションを作成しました。
oracle

V$SQL_PLANを活用してアクセスしたテーブルを調べる

現在ライブラリキャッシュに残っている実行プラン情報を確認できます。ある特定(SQL_ID+CHILD_NO)の実行プランを確認するならDBMS_XPLAN.DISPLAY_CURSOR()を利用するので通常この動的パフォーマンスビューを参照...
oracle

NVARCHAR2(AL16UTF16)でのLENGTH()使用にはご注意!

先日サロゲートペア文字に関するバグに遭遇しました。NVARCHAR2型に対しLENGTH()ファンクションで文字数をカウントしていたのですが、サロゲートペア文字は2文字扱いになるため想定外の動作となっていました。当然ですがVARCHAR2型...
oracle

PGAについて

基本的な特徴セッション終了とともにPGAも開放される。PGAに関する初期化パラメータ初期化パラメータpga_aggregate_target当項目設定値を超えない範囲内でPGA合計を自動調整(目標値)pga_aggregate_limit当...
oracle

dbcaを使ったデータベースの作成

Database Configuration Assistant(DBCA)を使ったデータベース作成のオペレーションを以下に記載します。なおこれはOracle19cにて作成しています。ここまでのオペレーションはこちらにあります。dbcaを起...
oracle

OUI(Oracle Universal Installer)でのインストール

UI(Oracle Universal Installer)でのオペレーションを以下に記載します。