DB
履歴データを管理するテーブルでは最新のデータを特定する為に削除フラグや最新フラグなどを定義していることがあります。 データをINSERTして、その後で1世代前のデータのフラグをUPDATEする・・・という冗長な処理はTRIGERを使うことでINSERTのみで済ませ…
Oracle10gからTNSNAMES.ORA ファイルを使用せずにSQLPLUSでDBに接続できるようになった。 sqlplus ${USERID}/${PASSWORD}@${HOSTNAME or IP_ADDRESS}:${PORT_NUMBER}/${SID}
「PostgreSQLは遅い」は本当か?:OSSデータベース比較 - ZDNet Japan
H2では、共有ロック (shared locks) と排他ロック(exclusive locks)の2種類のロックが存在する。共有ロックは、SELECT で取得される。 排他ロックは、SELECT 〜 FOR UPDATE 、INSERT、UPDATE、DELETE などで取得される。 共有ロックが取得されている場合 SQL…
JPAでロックの確認をしようとしたが、H2は1秒でロックタイムアウトするようデフォルト値が設定されている為、確認できない。 次のコマンドを実行し、5秒待つように変更した。 SET DEFAULT_LOCK_TIMEOUT 5000; DEFAULT_LOCK_TIMEOUT以外にLOCK_TIMEOUTもある…
テーブルの主キーを決める場合、ナチャラルキー(自然キー)とサロゲートキー(代替キー)というアプローチがある。ナチャラルキーとは、システムの外部から入力される社員番号のような業務上意味のあるキーであり、サロゲートキーとは、単にレコードをユニ…
H2 Database EngineはJavaで記述されたSQLデータベースエンジンで、 もともとHypersonic SQL(今のHSQLDB)の主要開発者である、Thomas Mueller氏によって開発された。 他のデータベースと比較すると、組み込み用途にもサーバ用途にも使うことができる上、フ…