Gblog

おもにTips

ORACLE

リテラルSQLの洗い出し

hard parse が多く、"% SQL with executions>1" が低かったので、リテラルSQLを調査した。(できればアプリ側で確認しろって思ってますが) FORCE_MATCHING_SIGNATURE を使えば、よしなにできる。

UNION と UNION ALL と MINUS と INTERSECT

4つの集合演算子。 複数の問合せを組み合せることができる。 優先順位はすべて同じ。括弧によって順序の指定がない限り上から(左から)順に評価する。 イメージはこんな。

SQLのキャンセル。シングルだけど。

準備、準備。

パスワードファイルのパス

18c 新機能マニュアルをみてたら、パスワードファイルのパスが変わったそうなので、実機で動かしてみたら、全く変わっておらず、?になってたら、どうやら読み取り専用ORACLE_HOME の場合のみのよう。。。

alert log の timestamp を各行の先頭に付与してファイル出力する

python です。 python はド素人です。 import os import re import sys args = sys.argv # ファイル名を引数に指定 alert_log = args[1] # timestamp の初期値 timstr = '------------------------' # エンコーディング(in/out 共通) encode = "shift-jis"…

リファレンスマニュアルにある初期化パラメータのデフォルト値を CSV出力する pythonスクレイピング

python はド素人ですが、楽したいので python にお願いしてます。 マニュアルは zip をダウンロードしてローカルに保存、展開するケースを想定しています。(マニュアルが書き換わっても確認できるように)

create database link

create database link 文も、毎回調べているのでメモ。。。 using句ベタ書きのパターン

サイレントでDB作成

Google 先生にきいてみても、なかなかマニュアルを教えてくれない。 ドキュメントは、以下がよさそう。 docs.oracle.com 2日で~、だとサイレントなことは書いていない。 コマンドは、こんな感じ。 dbca -silent -createDatabase -templateName General_Purp…

よく使う環境変数

自分が作った環境にはいつも環境変数ファイルを作っておく。 人が作った環境は環境変数がセットされていなかったりする。へこむのでメモ。

ストレージの機能を使用したバックアップ

12c のマニュアルから、サード・パーティのスナップショット・テクノロジを使用したバックアップについて言及されていました。 docs.oracle.com

UNDO がエクステントを割り当てる際の優先順位

表領域の空きがあれば使う。 オフラインの UNDO セグメントから、期限切れのエクステントがあれば使う。 オンラインの UNDO セグメントから、期限切れのエクステントがあれば使う。 表領域が拡張できれば、拡張 オフラインの UNDO セグメントから、期限切れ…

DB_SECUREFILE

マニュアルの記載がわかりにくく、PERMITTED を設定した場合の挙動について認識齟齬があったので動作確認。12.2.0.1 を使っています。(19c まではどうせ同じでしょ?) DB_SECUREFILE 以下の SQL を使用。 alter system set db_securefile='NEVER'; create …

ANYDATA 型

ANYDATAは、TYPEオブジェクトです。列の型にも定義できますが、データを操作するファンクションなども定義されています。 STS触ったついでに、サンプルを。

STS のバインド値

STS (SQL Tuning Set) のバインド値は、DBA_SQLSET_BINDS のVALUE 列から確認が可能です。 ただ、これ、ANYDATA 型。。。 SQL> DESC DBA_SQLSET_BINDS Name Null? Type ----------------------------------------- -------- ---------------------------- SQ…

インスタンスの中から、リスナーを作ってみる(SYSが怖い話)

特権ユーザでインスタンスに接続できると、どれぐらいのことができるかという話。インスタンスの中からリスナーを作ってみました。 (もともとは、OS には入れないけどリモートからSYSで接続できる場合に、どれぐらいまずいのか?を説明するために試してみま…

よくつかう tkprof のオプション

よく使うのに忘れる。 AGGREGATE = { YES | NO } SYS = { YES | NO } そもそも、tkprof をたまにしか使わないから。

NULL は、「= NULL」 では抽出できない。

※ 12.2 で動作確認

サンプルスキーマのインストール

12.2 のテスト環境にサンプルスキーマを入れてます。 昔は Companion CD だった気がしますが、今は Github にあるんですね。。。 サンプル・スキーマのインストール

LOG_ARCHIVE_DEST_n の MANDATORY

最近、18c さわってます。 LOG_ARCHIVE_DEST_n の書き方がちょっとかわったんですね。 LOG_ARCHIVE_DEST_n = { LOCATION=path_name | SERVICE=service_name }

階層問い合わせ

訳あって階層問い合わせをいじってみました。

p000 と pz99

p000 と pz99 の違いがマニュアルにありました。 スレーブ・プロセスには、0からPARALLEL_MAX_SERVERSに設定した値までの番号が付けられる。問合せがGV$の場合、バックグラウンド・プロセスにはPZ99から始まる番号が逆順に付けられる。 ようするに普通のパラ…

ヒストグラム、使った?

ある条件下でヒストグラムが使われるかどうか?という質問を受けた。 で、ヒストグラムが使われたかどうかを確認する方法ってあったけか?と調べてみたが、event 10053 以外は見つけられず。 そもそも、ヒストグラムは、取られていれば使われるもので、使わ…

ログイントリガーによる接続制御(ご利用は自己責任で)

トリガーってエラーになると、引き金になった処理も失敗する。 トリガーでの例外処理 ほとんどの場合、例外を呼び出す文がトリガーによって実行され、その例外が例外ハンドラによって処理されないと、データベースは、トリガーとそのトリガーを呼び出す文の…

バイトオーダ

エンディアン(endian)の話。毎回忘れます。 x86 はリトル。 HP-UX や AIX など他は大体ビッグ。 メインフレームも大体ビッグ。

ニワトリとヒヨコ

V$SQLAREA が親で、V$SQL が子。 これも何度も調べた。

errorstack

errorstack の取り方なんてもう忘れてしまいました。。。 デバッグコマンドになるので、実行には十分にご注意いただき自己責任でおねがいします。

隠しパラメータの確認方法2

隠しパラメータって V$ ビューで見えないと思ってる方も多いかもしれませんが。設定すれば見えます。例えば。 SQL> alter system set "_optim_peek_user_binds" = false ;System altered.SQL> col name for a30SQL> col value for a10SQL> col description f…

V$GES_TRAFFIC_CONTROLLER ?

V$GES_TRAFFIC_CONTROLLER ってなんぞ? 10.2 のアップグレード・ガイドにあるがリファレンスには何もない。 もともとは、V$DLM_TRAFFIC_CONTROLLER だったらしい。

recyclebin

recyclebin まわりのコマンドもすぐわすれるのでまとめ。 パラメータは、RECYCLEBIN 。デフォルト on 。

AWR - TXエンキュー待ちの分析

TXエンキューって要するに行ロックの競合です。 昔は「アプリの問題です」でバッサリ切り捨ててしてました。今も切り捨てるのは同じですが、いろいろ調べられるようになっています。