Oracle

【Oracle】不可視列(Invisible Column)完全ガイド|SELECT * に表示しない列の追加・段階的スキーマ移行・Oracle 12c 以降の新機能

Oracle 12c で導入された不可視列(Invisible Column)を完全解説。INVISIBLE 列は SELECT * や DESCRIBE に表示されない特殊な列・CREATE TABLE / ALTER TABLE MODIFY で列を不可視にする方法・不可視列を明示的に参照する方法と INSERT 時の扱い・既存アプリケーションを変更せずに新列を追加するユースケース(段階的スキーマ移行)・USER_TAB_COLUMNS.HIDDEN_COLUMN で不可視列を確認する方法・不可視列に作成できるインデックスや制約の制限まで実例で解説します。
Oracle

【Oracle】MATCH_RECOGNIZE完全ガイド|行パターンマッチングで時系列データのイベントを SQL で検出する

Oracle 12c で導入された MATCH_RECOGNIZE 句を完全解説。正規表現ライクなパターンで行の並びを検索する仕組み・PATTERN 句・DEFINE 句・MEASURES 句の記述方法・ONE ROW PER MATCH と ALL ROWS PER MATCH の違い・AFTER MATCH SKIP でマッチ後の開始位置を制御する方法・株価の上昇→下降パターン検出・ユーザーセッション集計・ウィンドウ関数(分析関数)では難しい連続パターンの検出まで実例で解説します。
Oracle

【Oracle】マルチテーブル INSERT 完全ガイド|INSERT ALL・INSERT FIRST で 1 つの SELECT から複数テーブルに同時挿入する

Oracle のマルチテーブル INSERT を完全解説。INSERT ALL で同じレコードを複数テーブルに同時挿入する方法・条件付き INSERT ALL(WHEN〜THEN〜INTO)で条件に応じて挿入先を振り分ける方法・INSERT FIRST で最初に一致した条件のテーブルにのみ挿入する方法・ETL でステージングテーブルからファクト・ディメンションテーブルに一括ロードするパターン・INSERT ALL とシーケンスを組み合わせる際の注意点・EXECUTE IMMEDIATE でのマルチテーブル INSERT の制限まで実例で解説します。
Oracle

【Oracle】テーブル圧縮完全ガイド|基本圧縮・Advanced Row Compression・ALTER TABLE MOVE COMPRESS まで解説

Oracle のテーブル圧縮を完全解説。基本圧縮(COMPRESS)とAdvanced Row Compression(ROW STORE COMPRESS ADVANCED)の違い・基本圧縮はダイレクトパス INSERT のみで有効な理由・Advanced Row Compression で通常の DML(INSERT/UPDATE)にも圧縮を適用する方法・ALTER TABLE MOVE COMPRESS で既存テーブルに圧縮を適用する方法・DBA_TABLES.COMPRESSION で圧縮状態を確認する方法・DBMS_COMPRESSION で圧縮率を事前に見積もる方法まで実例で解説します。
Oracle

【Oracle】補足ロギング(Supplemental Logging)完全ガイド|LogMiner・GoldenGate 向けの設定と DBA_LOG_GROUPS での確認方法まで解説

Oracle の補足ロギング(Supplemental Logging)を完全解説。補足ロギングが必要な理由(LogMiner・Oracle GoldenGate・レプリケーション)・データベースレベルの補足ロギング設定(最小・ALL・主キー・一意キー・外部キー)・テーブルレベルの補足ロググループの作成方法・V$DATABASE および DBA_LOG_GROUPS / DBA_LOG_GROUP_COLUMNS で設定を確認する方法・補足ロギングが REDO ログサイズに与える影響と適切な設定の選び方まで解説します。
Oracle

【Oracle】インデックス圧縮完全ガイド|キー圧縮(COMPRESS)・Advanced Index Compression でストレージと I/O を削減する

Oracle のインデックス圧縮を完全解説。インデックスキー圧縮(KEY COMPRESSION)の仕組みと COMPRESS n の指定方法・複合インデックスで先行列の繰り返しを圧縮して領域を削減する効果・Oracle 12c 以降の Advanced Index Compression(COMPRESS ADVANCED LOW/HIGH)の違い・既存インデックスを圧縮付きで再構築する ALTER INDEX REBUILD COMPRESS・DBA_INDEXES.COMPRESSION / LEAF_BLOCKS で圧縮効果を確認する方法・一意インデックスへの圧縮適用の制限まで実例で解説します。
Oracle

【Oracle】XMLType完全ガイド|XML の格納・XMLQuery・XMLTABLE・XMLElement/XMLAgg まで解説

Oracle の XMLType を完全解説。XMLType 列でテーブルに XML データを格納する方法・XMLQuery / XMLExists で XQuery を使って XML を検索する方法・XMLTABLE で XML データをリレーショナル行に変換する方法・XMLElement / XMLForest / XMLAgg で SELECT 結果を XML に変換する方法・EXTRACT / EXTRACTVALUE(旧 API)と XMLQuery(推奨)の違い・XML インデックスで XML 検索を高速化する方法まで実例で解説します。
Oracle

【Oracle】DBMS_UTILITY完全ガイド|FORMAT_ERROR_BACKTRACE・COMPILE_SCHEMA・GET_TIME など実用関数を徹底解説

Oracle の DBMS_UTILITY パッケージを完全解説。FORMAT_ERROR_BACKTRACE でエラーの発生箇所を特定する方法・FORMAT_CALL_STACK で呼び出しスタックを取得する方法・COMPILE_SCHEMA でスキーマ内の無効オブジェクトを一括再コンパイルする方法・NAME_RESOLVE で PL/SQL オブジェクト名を解決する方法・GET_TIME で処理時間を計測する方法・COMMA_TO_TABLE / TABLE_TO_COMMA で文字列とコレクションを変換する方法まで実例で解説します。
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で解放する手順・タイムアウト付きロック取得と戻り値の判定・バッチジョブの二重起動防止・複数セッション間の協調制御まで実例で解説します。