潜伏バグからのロングフリーズ

Javaっぽいエンジニアの徒然草

oracle

GREATEST関数の引数限界を調べてみた@Oracle10g

GREATEST関数の引数限界に関して、255個が限界と書いているサイトがあった。 そのサイトにはOracleのバージョンに関する記載は無く、 気になったのでちょっと調べてみた。 試験環境はOracle10g。 とりあえず255個試してみた。 select GREATEST( 1,2,3,4,5,6,…

とあるSQLにおけるSQLパフォーマンスチューニング LEFT JOIN句で条件指定 vs WHERE句で条件指定

抽出したい情報 ・A_TBLにあって、B_TBLのCODEが'XXX'であるレコード ・A_TBLにあって、B_TBLにはないレコード 抽出したくない情報 ・A_TBLにあって、B_TBLにもあるがCODEが'XXX'ではないレコード (1) select * from A_TBL left join B_TBL on A_TBL.KEY=B_T…

ORA-00060とORA-02049

デッドロックについて問い合わせを受けたのでメモ。 デッドロック ORA-00060 分散トランザクション待機 ORA-02049 デッドロックは発生した瞬間エラーとなり、タイムアウト設定不可。 → ORA-00060が発生したら設計を見直し。 WAIT句対象レコードにロックがか…

ORA-02049発生時の対処法

■概要 アプリサーバを起動して大量データを扱うバッチを実行したところ、 マシンリソース不足(多分メモリ)が原因でフリーズした。 15分ぐらい待ってみたものの動き出す気配がなかったので強制終了。 みんな大好き、困ったときのプロセスkill. そしたらDBにIN…

かの有名なORA-00600に遭遇した話

以前(2013/10/19)業務中に起こったお話。 業務アプリからOracleにアクセスしようとしたら、ORA-00600が発生した。 調べてみると、有名なエラーコードらしい。 オラクルの内部エラー。 解決方法は次の2つしかない。 ①サポート契約を結んでオラクルに問い合わ…

マルチテーブル・インサートにてORA-24335エラーが発生

【マルチテーブル・インサート構文】 insert all into XXX_TBL (id, name, value) values ('001', 'AAAAA', 1) into YYY_TBL (id, name, value) values ('002', 'BBBBB', 2) select * from dual; 基本的には普通のinsert文と同じ書き方。 異なる点は下記3つ…