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 で並列実行の状況を監視する方法まで実例で解説します。
Oracle

【Oracle】拡張統計(Extended Statistics)完全ガイド|列グループ統計・式統計・DBMS_STATS.CREATE_EXTENDED_STATS まで解説

Oracle の拡張統計(Extended Statistics)を完全解説。WHERE 句に複数列の条件を組み合わせるクエリでオプティマイザの見積もり誤差を修正する列グループ統計の作成方法・UPPER(col) などの式に対する統計を収集する式統計の設定・DBMS_STATS.CREATE_EXTENDED_STATS / SEED_COL_USAGE で拡張統計を作成する手順・DBA_STAT_EXTENSIONS で拡張統計の一覧を確認する方法まで実例で解説します。
Oracle

【Oracle】適応型クエリ最適化(Adaptive Query Optimization)完全ガイド|適応プラン・統計フィードバック・動的サンプリングまで解説

Oracle 12c で導入された適応型クエリ最適化(Adaptive Query Optimization)を完全解説。実行中に結合方法を動的に切り替える適応プラン(Adaptive Plans)の仕組み・実行結果を次回実行に反映する統計フィードバック(Statistics Feedback)の動作・統計情報不足を補う動的サンプリング(Dynamic Statistics)の設定・適応機能の有効/無効を切り替える OPTIMIZER_ADAPTIVE_PLANS / OPTIMIZER_ADAPTIVE_STATISTICS パラメータ・実行計画で適応機能の使用を確認する方法まで実例で解説します。
Oracle

【Oracle】SQL Tuning Advisor完全ガイド|DBMS_SQLTUNE・SQL チューニングセット・SQL プロファイル・推奨事項の確認まで解説

Oracle の SQL Tuning Advisor を完全解説。DBMS_SQLTUNE.CREATE_TUNING_TASK で特定の SQL を解析するタスクを作成する方法・EXECUTE_TUNING_TASK でアドバイザを実行する方法・REPORT_TUNING_TASK で統計情報収集・インデックス追加・SQL プロファイルなどの推奨事項を確認する方法・ACCEPT_SQL_PROFILE で推奨プロファイルを適用する方法・SQL チューニングセット(STS)で複数 SQL を一括解析する手順まで実例で解説します。
Oracle

【Oracle】In-Memory Column Store完全ガイド|INMEMORY句・IM領域の設定・V$IM_SEGMENTS・分析クエリ高速化まで解説

Oracle In-Memory Column Store(Oracle 12c 以降)を完全解説。In-Memory 列ストアの仕組みとバッファキャッシュとの違い・INMEMORY_SIZE パラメータで IM 領域を設定する方法・テーブル・列・パーティションに INMEMORY 句を付けて列圧縮形式(MEMCOMPRESS)を指定する方法・V$IM_SEGMENTS でメモリへのロード状況を確認する方法・分析クエリで効果的に使うためのポイントまで実例で解説します。
Oracle

【Oracle】マルチテナント(CDB/PDB)完全ガイド|コンテナDB・プラガブルDB・接続・管理・CDB_* ビューまで解説

Oracle のマルチテナント・アーキテクチャを完全解説。CDB(コンテナデータベース)と PDB(プラガブルデータベース)の違いと仕組み・PDB への接続方法(サービス名・ALTER SESSION SET CONTAINER)・PDB の作成・オープン・クローズ・プラグイン/アンプラグ操作・CDB_* ビューと DBA_* ビューの違い・共通ユーザー(C##プレフィックス)とローカルユーザーの使い分けまで実例で解説します。