データベースでは、データの整合性や一貫性を保証するために「ロック」や「読み取り一貫性」といった機能が使われます。Oracle Server とSQL Serverでは、これらの仕組みが大きく異なります。
読み取り一貫性の実現方法の違い
Oracle Serverでは、通常のSELECTではロックがかかりません(SELECT FOR UPDATEは除く)。トランザクション途中のデータを他のユーザーがSELECTした場合、UNDOセグメントにある変更前のコミット済みデータを読み込み、読み取り一貫性を保証します。一方、SQL Serverでは、UNDOセグメントに相当するものはありません。読み取り一貫性は、ロックメカニズムを使用して実現します。