Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

RDBMS製品ごとの特徴的な差異

RDBMS製品ごとの特徴的な差異をまとめた資料とかないんだろうか?たとえば以下。

# 項目 Oracle SQL Server PostgreSQL MySQL HiRDB
1 空文字列とNULLの区別 区別しない 区別する 区別する 区別する 区別する
2 DDLロールバックできるか(トランザクションになるか) できない できる できる できない
3 ロックモードの種別 5種類 22種類 8種類 4種類 2種類
4 SQL単位でのダーティーリード設定 不可能 可能 不可能 不可能 可能
5 トランザクション単位でのダーティーリード設定 不可能 可能 不可能 可能 不可能
6 SKIP LOCKED ある ある ある ある ない
7 IS NULL検索でindexを使う 場合による 使う 使う 使う 使う
8 JDBCドライバのライセンス 商用 MIT BSD GPLv2 商用
9 実行計画の更新 自動更新 自動更新 自動更新 自動更新 手動更新
10 ロックエスカレーション なし あり なし なし なし
11 XQuery 使用可能 使用可能 XPathのみ XPathのみ 使用可能
12 INSERTのVALUESが列数より少ない時の挙動 エラー エラー 正常終了 エラー
13 無効なコードポイント(例:U+FFFF)をINSERT 正常終了 正常終了 エラー エラー
14 hint文の識別子のcase sensitivity 区別しない 設定による? 区別する 設定による
15 同時実行制御方式 MVCC ロック MVCC MVCC ロック

ロックモードの種別数はちょっと自信がないんだけど、以下のような資料を参考にした。

XQueryに関するURLは以下。

「INSERTのVALUESが列数より少ない時の挙動」については以下を参照。