Oracle

【Oracle】PL/SQL ネイティブコンパイル完全ガイド|NATIVE モードで演算処理を高速化・コンパイルモードの変更まで解説

Oracle PL/SQL のネイティブコンパイル(Native Compilation)を完全解説。INTERPRETED モードと NATIVE モードの違い・PLSQL_CODE_TYPE パラメータで NATIVE モードに変更する方法・ALTER PROCEDURE / ALTER PACKAGE を使って既存コードを NATIVE に再コンパイルする手順・ネイティブコンパイルが効果的な処理(数値演算・ループ)と効果が薄い処理(SQL 主体)・DBA_PLSQL_OBJECT_SETTINGS でコンパイルモードを確認する方法まで解説します。
Oracle

【Oracle】コンパウンドトリガー完全ガイド|ORA-04091 ミュータルテーブルの解決・一括 DML の効率化まで解説

Oracle 11g 以降で使えるコンパウンドトリガー(Compound Trigger)を完全解説。1 つのトリガーに BEFORE STATEMENT・BEFORE EACH ROW・AFTER EACH ROW・AFTER STATEMENT の4 つのタイミングポイントを定義できる仕組み・ORA-04091 ミュータルテーブルエラーを解決する AFTER EACH ROW + AFTER STATEMENT パターン・行単位ループを避けてパフォーマンスを改善する一括 INSERT(FORALL)パターン・コンパウンドトリガーの変数共有とセッション間での初期化まで実例で解説します。
Oracle

【Oracle】DBMS_SQL完全ガイド|動的 SQL のカーソル操作・列数不定の SELECT・EXECUTE IMMEDIATE との使い分けまで解説

Oracle の DBMS_SQL パッケージを完全解説。OPEN_CURSOR・PARSE・BIND_VARIABLE・EXECUTE・FETCH_ROWS・COLUMN_VALUE の基本フロー・実行時まで列数・列型が不明な SELECT に対応する方法(DESCRIBE_COLUMNS)・EXECUTE IMMEDIATE との機能比較と使い分け・バインド変数を使った安全な動的 DML の実行方法・DBMS_SQL.TO_REFCURSOR で結果を REF CURSOR に変換する方法まで実例で解説します。
Oracle

【Oracle】DBMS_JOB完全ガイド|ジョブの作成・変更・停止・DBMS_SCHEDULER との違いまで解説

Oracle の DBMS_JOB パッケージ(旧ジョブスケジューラ)を完全解説。DBMS_JOB.SUBMIT でジョブを登録する方法・実行間隔(interval)パラメータの設定方法(SYSDATE+1/24 など)・DBMS_JOB.CHANGE でジョブを変更する方法・DBMS_JOB.BROKEN でジョブを停止する方法・USER_JOBS / DBA_JOBS でジョブを管理・確認する方法・DBMS_JOB と DBMS_SCHEDULER の違いと移行方法まで解説します。
Oracle

【Oracle】ビットマップインデックス完全ガイド|低カーディナリティ列・DWH クエリの高速化・B-Tree との使い分けまで解説

Oracle のビットマップインデックス(Bitmap Index)を完全解説。通常の B-Tree インデックスとビットマップインデックスの内部構造の違い・CREATE BITMAP INDEX の作成方法・低カーディナリティ列(性別・ステータスなど)でのビットマップの効果・AND/OR/NOT を組み合わせた複数列ビットマップ演算の仕組み・OLTP ではなく DWH・分析クエリに適した理由(DML 時のロック競合)・ビットマップジョインインデックスの活用まで実例で解説します。
Oracle

【Oracle】PL/SQL 条件付きコンパイル完全ガイド|$IF/$THEN/$END・DBMS_DB_VERSION・デバッグフラグまで解説

Oracle PL/SQL の条件付きコンパイル(Conditional Compilation)を完全解説。$IF/$THEN/$ELSIF/$ELSE/$END ディレクティブの使い方・DBMS_DB_VERSION でバージョン分岐する方法・PLSQL_CCFLAGS でカスタムフラグを定義してデバッグコードを切り替える方法・$ERROR ディレクティブでコンパイル時エラーを出力する方法・条件付きコンパイルが有効なユースケース(バージョン互換・本番/開発の切り替え)まで解説します。
Oracle

【Oracle】DBMS_PIPE・DBMS_ALERT完全ガイド|セッション間通信・非同期通知の仕組みと使い分けまで解説

Oracle の DBMS_PIPE・DBMS_ALERT パッケージを完全解説。DBMS_PIPE でセッション間にメッセージを送受信する方法(CREATE_PIPE・PACK_MESSAGE・SEND_MESSAGE・RECEIVE_MESSAGE)・DBMS_ALERT で特定イベントの非同期通知をサブスクライブする方法(SIGNAL・WAITONE・REGISTER)・DBMS_PIPE と DBMS_ALERT の違いと使い分け・パイプのクリーンアップ(REMOVE_PIPE・RESET_BUFFER)まで実例で解説します。
Oracle

【Oracle】Flashback Data Archive完全ガイド|Total Recall で長期変更履歴を保存して AS OF TIMESTAMP で過去データを参照する方法まで解説

Oracle の Flashback Data Archive(Oracle Total Recall)を完全解説。UNDO 保存期間を超えた長期間の変更履歴を自動保存する仕組み・CREATE FLASHBACK ARCHIVE でアーカイブを作成する方法・ALTER TABLE FLASHBACK ARCHIVE で対象テーブルを有効化する手順・AS OF TIMESTAMP・AS OF SCN を使った任意時点のデータ参照・VERSIONS BETWEEN で期間内の全変更履歴を一覧取得する方法・通常の Flashback クエリとの違いまで実例で解説します。
Oracle

【Oracle】PL/SQL プロファイラ完全ガイド|DBMS_PROFILER・DBMS_HPROF でボトルネックを特定する方法まで解説

Oracle の PL/SQL プロファイラ(DBMS_PROFILER・DBMS_HPROF)を完全解説。DBMS_PROFILER でプロシージャの行単位実行時間と呼び出し回数を計測する方法・START_PROFILER / STOP_PROFILER / FLUSH_DATA の使い方・plsql_profiler_data テーブルで実行時間の多い行を特定する方法・DBMS_HPROF(階層型プロファイラ)でコールチェーンごとの実行時間を分析する方法・DBMS_HPROF.ANALYZE でレポートを生成してボトルネックを特定する手順まで解説します。
Oracle

【Oracle】UTL_HTTP完全ガイド|PL/SQL から REST API を呼び出す方法・HTTPS・認証ヘッダー・レスポンス取得まで解説

Oracle の UTL_HTTP パッケージを完全解説。PL/SQL から HTTP/HTTPS リクエストを送信する方法・BEGIN_REQUEST・WRITE_TEXT・GET_RESPONSE・READ_TEXT の基本的な使い方・POST リクエストで JSON ボディを送信する方法・Authorization ヘッダーによる API 認証・HTTPS 接続に必要な Oracle ウォレットの設定・タイムアウト設定と END_RESPONSE の正しい後処理まで実例で解説します。
Oracle

【Oracle】索引構成表(IOT)完全ガイド|ORGANIZATION INDEX・主キー検索の高速化・ヒープ表との比較まで解説

Oracle の索引構成表(IOT: Index Organized Table)を完全解説。通常のヒープ表と IOT の構造の違い・ORGANIZATION INDEX でテーブルを作成する方法・PCTTHRESHOLD と INCLUDING 句でオーバーフローセグメントを管理する方法・主キーによるポイント検索を高速化できる仕組みと適切なユースケース・二次索引(セカンダリインデックス)の作成と論理ROWIDの特性まで実例で解説します。
Oracle

【Oracle】DBMS_LOCK完全ガイド|ユーザー定義ロックで排他制御・バッチ二重起動防止まで解説

Oracle の DBMS_LOCK パッケージを完全解説。アプリケーションレベルの排他制御に使えるユーザー定義ロックの仕組み・ALLOCATE_UNIQUE でロックIDを確保する方法・REQUEST でロックを取得してRELEASEで解放する手順・タイムアウト付きロック取得と戻り値の判定・バッチジョブの二重起動防止・複数セッション間の協調制御まで実例で解説します。
Oracle

【Oracle】VPD(Virtual Private Database)完全ガイド|DBMS_RLS で行レベルセキュリティを実装してマルチテナントデータ分離まで解説

Oracle の VPD(Virtual Private Database)と DBMS_RLS パッケージを完全解説。行レベルセキュリティ(RLS)でユーザーやアプリケーションコンテキストに応じてSELECT/DMLを自動フィルタリングする仕組み・ポリシー関数の作成方法・ADD_POLICY でテーブルにポリシーを適用する手順・SYS_CONTEXT で APPLICATION CONTEXT を活用してテナント分離を実現する方法・DBA_POLICIES でポリシーを管理・確認する方法まで実例で解説します。
Oracle

【Oracle】PRAGMA AUTONOMOUS_TRANSACTION完全ガイド|独立トランザクションで監査ログ・エラーログを確実に残す方法まで解説

Oracle の PRAGMA AUTONOMOUS_TRANSACTION を完全解説。独立トランザクション(自律型トランザクション)はメインセッションとは独立してコミット・ロールバックできるため、メインのトランザクションをロールバックしても監査ログ・エラーログを確実に残せます。宣言方法・COMMIT/ROLLBACK の必須ルール・トリガー内での活用・エラーログテーブルへの書き込みパターン・再帰呼び出しとの違い・使ってはいけない場面まで実例で解説します。
Oracle

【Oracle】ダイレクト・パス・インサート(APPEND)完全ガイド|APPEND ヒント・NOLOGGING・大量データの高速 INSERT・CTAS まで解説

Oracle のダイレクト・パス・インサート(APPEND ヒント)を完全解説。バッファキャッシュを経由せずに直接書き込む仕組みと通常 INSERT との違い・/*+ APPEND */ ヒントで INSERT ... SELECT を高速化する方法・NOLOGGING でREDO ログ生成を最小化してスループットを向上させる方法・CREATE TABLE AS SELECT(CTAS)での NOLOGGING の使い方・ダイレクト・パス・インサート後の制約(コミット前の SELECT が無効になる)まで実例で解説します。
Oracle

【Oracle】LogMiner完全ガイド|DBMS_LOGMNR で REDO ログを解析して変更履歴を調査する方法まで解説

Oracle の LogMiner(DBMS_LOGMNR)を完全解説。REDO ログ・アーカイブログから特定テーブルへの DML 変更履歴を調査する方法・DBMS_LOGMNR.ADD_LOGFILE でログファイルを追加する手順・DBMS_LOGMNR.START_LOGMNR で解析を開始する方法・V$LOGMNR_CONTENTS でコミット済みの INSERT/UPDATE/DELETE を確認する方法・サプリメンタルロギングの設定と LogMiner での活用まで実例で解説します。
Oracle

【Oracle】DBMS_REDEFINITION完全ガイド|オンラインテーブル再定義でゼロダウンタイムのテーブル再構成まで解説

Oracle の DBMS_REDEFINITION パッケージを完全解説。サービスを停止せずにテーブルの圧縮変更・表領域移動・パーティション追加・列追加を行うオンラインテーブル再定義の手順・CAN_REDEF_TABLE で再定義可否を確認する方法・START_REDEF_TABLE / FINISH_REDEF_TABLE の実行手順・再定義中の DML が自動同期される仕組みと SYNC_INTERIM_TABLE の使い方まで実例で解説します。
Oracle

【Oracle】非表示インデックス(Invisible Index)完全ガイド|インデックスの効果テスト・廃止候補の安全な無効化まで解説

Oracle の非表示インデックス(Invisible Index)を完全解説。非表示インデックスはオプティマイザから見えないため、インデックスを削除せずに無効化できます。INVISIBLE 句でインデックスを作成・変更する方法・USE_INVISIBLE_INDEXES パラメータで特定セッションのみ非表示インデックスを有効にしてテストする方法・DBA_INDEXES の visibility 列で非表示インデックスを管理する方法・廃止候補インデックスの安全な無効化手順まで実例で解説します。
Oracle

【Oracle】DBMS_APPLICATION_INFO完全ガイド|モジュール・アクション情報の設定と V$SESSION・AWR による監視まで解説

Oracle の DBMS_APPLICATION_INFO パッケージを完全解説。SET_MODULE・SET_ACTION・SET_CLIENT_INFO でセッションにアプリケーション情報を設定する方法・V$SESSION の module / action / client_info 列でどのモジュールが実行中かを特定する方法・AWR がモジュール・アクション単位でパフォーマンスデータを集計する仕組み・READ_MODULE でセッション情報を読み取る方法・SYS_CONTEXT で実行コンテキスト情報を参照する方法まで実例で解説します。
Oracle

【Oracle】並列実行(Parallel Execution)完全ガイド|PARALLEL ヒント・並列 DML・並列度の制御・V$PX_SESSION による監視まで解説

Oracle の並列実行(Parallel Execution)を完全解説。/*+ PARALLEL */ ヒントや PARALLEL 句で並列度(DOP)を指定する方法・並列クエリコーディネーターとパラレルサーバーの仕組み・ALTER SESSION ENABLE PARALLEL DML で並列 INSERT/UPDATE/DELETE を実行する方法・PARALLEL_DEGREE_POLICY パラメータによる自動並列度管理・V$PX_SESSION / V$PQ_SESSTAT で並列実行の状況を監視する方法まで実例で解説します。