GAGA LIFE.

インフラエンジニアブログ

スポンサーリンク

SQL*Loaderで、任意の列に固定の文字列を埋め込む方法(CONSTANT句)

目的 SQL*Loaderの動作確認や検証時にデータに固定値を設定する マニュアル Oracle® Database ユーティリティ 19c CONSTANTパラメータ 列に定数値を設定するには、CONSTANTを指定して、その後に値を指定します。 CONSTANT value CONSTANTデータは、SQL*Loade…

【Oracle】特定のパーティションのロック

目的 テーブルの統計情報をLOCK_TABLE_STATSを使用してロックすることはよくあるが、 特定のパーティションの統計情報をロックする方法のメモ。 マニュアル Oracle Database PL/SQLパッケージおよびタイプ・リファレンス 19c 171.7.79 LOCK_PARTITION_STATS…

既存表からSQL*Loaderのデータファイルを作成する

目的 検証や移行用に既存表に格納されたデータをSQL*Loaderのデータファイルとしてテキストファイルに出力する方法 SQLファイル 事前に下記の内容のSQLファイルを準備 accept table_name prompt ' Enter Table Name : ' set heading off set verify off set …

ORA_HASHの使用

構文 構文:ORA_HASH(expr,max_bucket,seed_value) 目的 ORA_HASHファンクションは、指定された式のハッシュ値を計算します。 このファンクションは、データのサブセットの分析や、ランダムな標本の生成などの操作に有効です。 ・expr引数には、Oracle Databa…

単一パーティションをコンポジットパーティション化する(ALTER TABLE MODIFY)

概要 以前のバージョンでは、大きく以下の方法がありました。 * エクスポート/インポート * サプクエリでインサート * パーティション交換 * DBMS_REDEFINITION 12.2以降は、非パーティションからパーティション化する場合や単一パーティションからコンポジ…

select ~ for update文でもredoが出る話

概要 通常、データ更新(INSERT/UPDATE/DELETE)でREDOログが出力されますが、更新を伴わないselect ~ for update文でもREDO生成がされます。 ※for updateを伴わないselect文(参照のみ)ではREDOは生成されません。 また、SELECT FOR UPDATE文の対象となる行数…

スケジューラ自動タスクの再作成

概要 スケジューラ自動タスクの再作成方法についてのメモ 前提 ウィンドウがオープンされるべきではない時間帯にオープンされていたり、ウインドウがクローズされるべき時間に DBA_SCHEDULER_WINDOWS.ACTIVE=TRUEになっていることが解消できない場合、または…

最小サプリメンタルロギングの設定

概要 最小サプリメンタルロギングを設定する際の動作について検証した際のメモ サプリメンタルロギングとは 22.10 サプリメンタル・ロギング サプリメンタル・ロギングについて説明します。 一般に、REDOログ・ファイルは、インスタンス・リカバリおよびメデ…

パーティション統計のコピー(DBMS_STATS.COPY_TABLE_STATS)

パーティション統計のコピー パーティション表の任意のパーティション/サブパーティションから、別のパーティション/サブパーティションに統計情報をコピーできる。 新規パーティションを追加し、データ投入後に対象パーティションに統計情報収集すると時間…

Hint Report(DBMS_XPLAN)のパラレル処理確認時の注意点

概要 Hint Report(DBMS_XPLAN)を後で確認する際、パラレルクエリの場合、見え方に差異が出る場合があります。 これは、コーディネータのインスタンスとスレーブが実行されたインスタンスでのHint Reportで見え方が異なる場合があるためです。 その動作確認と…

実行計画の比較(DBMS_XPLAN.COMPARE_PLANSファンクション)

概要 DBMS_XPLAN.COMPARE_PLANS APIを使用して実行プランを比較する19cの新機能を試したのでメモします。 DBMS_XPLAN.COMPARE_PLANSは、実行計画の比較機能を提供する19cの新機能です。 参照計画とテスト計画の任意のリストを取得し、それらの違いを強調表示…

マルチテナント・データベース(PDB)のAWRスナップショットおよびレポート出力

概要 12.2よりPDBレベルでAWRレポートを作成できるようになりました。 その方法を記載します。 手順 PDB レベルで awr_pdb_autoflush_enabled=true を設定する SQL> conn /as sysdba 接続されました。 SQL> show con_name CON_NAME ------------------------…

Oracle 19c環境(コンテナデータベース)でOS認証によりPDBに接続する方法

概要 19cより前のバージョンでは、SQL*Plusを使ってPluggable Database (PDB)に接続する際には以下の方法がありました tnsname.oraを設定し、リスナー経由で接続 CDB$ROOTからALTER SESSION SET CONTAINER文を実行し、接続 今回は、19cからPDBへのOS認証がサ…

Oracleのヒント句の有効性を確認する Hint Report(DBMS_XPLAN)

概要 Oracle 18cまではヒント句の使用有無や記述の正誤を簡単に判断する方法はありませんでした。 これまでは、イベントの10053(CBOトレース)を取得し、出力されたトレース内の「Dumping Hints」というセクションで確認していました。 ただし、それも実際に…

INDEX SKIP SCAN

INDEX SKIP SCAN 概要 INDEX SKIP SCANの概要について記載します。 INDEX SKIP SCAN INDEX SKIP SCAN(9i~)により第1キーが抽出条件に無くてもインデックスを使用する機能がありますが、この実行計画が選択される条件として 第1キーのカーディナリティが非…

フラッシュバックOFF表領域の再作成

概要 フラッシュバックログが見積もりより大きい場合、フラッシュバックに時間を要することがあります。 事前にDatapumpでデータをExportしている場合、表領域再作成⇒IMPDPの方が早い場合があるため、再作成の手順を整理しておきます。 現在の状況確認(DBは…

表領域レベルの圧縮

概要 表領域レベルの圧縮の動作を確認していきます。 マニュアル Oracle® Database 管理者ガイド 19c 13.2.4 デフォルト圧縮属性を持つ表領域 表領域の作成時に、表領域に作成されるすべての表と索引またはそれらのパーティションをデフォルトで圧縮するよう…

表領域のフラッシュバックデータベースのON/OFF

概要 表領域のフラッシュバックデータベースのONとOFFについて検証してみました マニュアル Oracle® Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c 7.5.1 フラッシュバック・データベースの有効化 ALTER DATABASEコマンドを使用して、フラッ…

PDBレベルでのフラッシュバックデータベースを実行

概要 12.2から導入されたPDB レベルでフラッシュバックを実行する方法について説明します。 前提 ・本手順はローカルUNDOであることを前提にしています。 ローカル/共有の確認および有効化は下記で可能です。 UNDOモードの確認(TRUE:ローカルUNDO FALSE:共…

Oracle RAC環境での oracle バイナリの権限(SGID oracle:asmadmin)

概要 ASM使用環境下でRMANでバックアップした場合などにバックアップセットのOSグループがasmadminグループとなります。 ※oracleユーザーの所属するグループは、asmadminグループには属していない # id oracle uid=54321(oracle) gid=54321(oinstall) groups…

データタイプANYDATAの参照方法

データタイプANYDATAの参照方法 概要 Oracle Databaseには複数のデータ型(VARCHAR2、NUMBER等々)のデータを格納することができるANYDATAという特殊なデータ型が存在しています。 Oracle Database PL/SQLパッケージおよびタイプ・リファレンス 19c 272 ANYDAT…

バインド変数

概要 バインド変数を使用することで、大きく以下のようなメリットが得られます。 * 共有プールの節約 * SQLインジェクション対策になる バインド変数の関連箇所 バインド変数の使用 バインド変数の問題点 バインドピークとその問題点

ハードパースとソフトパース

概要 ハードパースとソフトパースについての解説 ハードパース 様々な実行計画を生成し、最適な実行計画を選択 統計情報が収集済みのとき(ソフトパース) * 統計情報を利用 * 統計情報:表、列、索引、システム 統計がない時or古い時(ハードパース) * 動…

SQL文を実行した際のメモリ上の動作

概要 SQL文を実行した際のメモリ上の動作を説明 SQL実行時のメモリ上の動作 SQL文を発行した後、メモリ上では大きく以下のような流れとなる 1. SQLリクエストを受信 ↓ 2. カーソルのオープン ↓ 3. 実行計画の生成/再利用 ↓ 4. SQL文の実行 ↓ 5. カーソルのク…

実行計画生成の前提知識(SQL_ID/PLAN_HASH_VALUE/CURSOR)

概要 SQLや実行計画を解析する際の最低限知っておくべきと考える情報を記載します。 SQL_ID(SQL識別子) 意味 Oracleは実行されたSQL文を13桁の「文字列」で管理していますが、この文字列のことをSQL識別子(SQL_ID)と呼びます。 特徴 SQL識別子(SQL_ID)はSQL…

Oracle 主要な待機イベント(RAC固有)

主な待機イベント一覧 Category Wait Class Event RAC Cluster gc cr/current (multi block) request Cluster gc cr/current grant 2-way Cluster gc cr/current block 2-way/3-way Cluster gc buffer busy acquire/release インターコネクト RACにはインタ…

Oracle 主要な待機イベント

主な待機イベント一覧 Category Wait Class Event I/O User I/O db file sequential read User I/O db file scattered read User I/O direct path read Commit log file sync System I/O db file parallel write Memory Configuration free buffer waits N/W…

Oracle 待機イベント概要

待機イベント 待機イベントは、プロセスがCPUを使用できず、待機させられるイベントのこと。 待機の要因に基づき細分化されているため、この点を利用してパフォーマンス分析・チューニングの実施が可能 AWR/StatspackのDB CPUと待機イベントの関係性は以下の…

Oracle ヒント句

Oracle ヒント句 ヒント句 オプティマイザが適切な実行計画を選択してくれない、または不具合の影響等で性能要件を満たせない実行計画になることを抑止・安定化させる。 ただし、ヒントは融通が利かないため最終手段と考えるべき。 理由としてヒントで実行計…

Oracle データベース アーキテクチャ(Space Management Coordinator Process (SMCO))

SMCO スペース管理コーディネータープロセス(SMCO)は、事前のスペース割り当てやスペースの再利用など、さまざまなスペース管理タスクの実行をスケジュールするバックグラウンドプロセス。 SMCOは動的にスペース管理スレーブプロセス(Wnnn)を生成して、…

スポンサーリンク