付録D.1 変更点
バージョン09-50より前のバージョンからバージョンアップを行う場合は,省略時解釈変更によるメリット及びデメリットを確認してください。確認の結果,旧バージョンとの互換性を重視する場合は,旧バージョンと同等の省略値解釈になる互換モードを適用してください。
(1) バージョンによって省略時解釈が異なるSQL構文
バージョンによって省略時解釈が異なるSQL構文を次の表に示します。
SQL |
09-50以降の省略時解釈 |
0904互換モードを適用時の省略時解釈 |
09-50より前の省略値解釈 |
省略値変更によるメリット |
省略値変更によるデメリット |
|
---|---|---|---|---|---|---|
CREATE 〔PUBLIC 〕PROCEDURE(手続き定義,パブリック手続き定義) |
SQLコンパイルオプションの「ISOLATION データ保証レベル 〔FOR UPDATE { EXCLUSIVE | COMPATIBLE }〕」 |
FOR UPDATE { EXCLUSIVE | COMPATIBLE }を指定しない場合,FOR UPDATE EXCLUSIVEを仮定します。 |
→ |
FOR UPDATE EXCLUSIVEを指定しない場合,FOR UPDATE COMPATIBLEを仮定します。 |
更新を前提とした検索に対する排他モードのロックを自動設定 |
排他モード変更によるSQL文の見直し |
CREATE TRIGGER(トリガ定義) |
SQLコンパイルオプションの「ISOLATION データ保証レベル 〔FOR UPDATE { EXCLUSIVE | COMPATIBLE }〕」 |
FOR UPDATE { EXCLUSIVE | COMPATIBLE }を指定しない場合,FOR UPDATE EXCLUSIVEを仮定します。 |
→ |
FOR UPDATE EXCLUSIVEを指定しない場合,FOR UPDATE COMPATIBLEを仮定します。 |
更新を前提とした検索に対する排他モードのロックを自動設定 |
排他モード変更によるSQL文の見直し |
ALTER PROCEDURE(手続きのSQLオブジェクトの再作成) |
SQLコンパイルオプションの「ISOLATION データ保証レベル 〔FOR UPDATE { EXCLUSIVE | COMPATIBLE }〕」 |
FOR UPDATE { EXCLUSIVE | COMPATIBLE }を指定しない場合,FOR UPDATE EXCLUSIVEを仮定します。 |
→ |
FOR UPDATE EXCLUSIVEを指定しない場合,FOR UPDATE COMPATIBLEを仮定します。 |
更新を前提とした検索に対する排他モードのロックを自動設定 |
排他モード変更によるSQL文の見直し |
ALTER TRIGGER(トリガのSQLオブジェクトの再作成) |
SQLコンパイルオプションの「ISOLATION データ保証レベル 〔FOR UPDATE { EXCLUSIVE | COMPATIBLE }〕」 |
FOR UPDATE { EXCLUSIVE | COMPATIBLE }を指定しない場合,FOR UPDATE EXCLUSIVEを仮定します。 |
→ |
FOR UPDATE EXCLUSIVEを指定しない場合,FOR UPDATE COMPATIBLEを仮定します。 |
更新を前提とした検索に対する排他モードのロックを自動設定 |
排他モード変更によるSQL文の見直し |
ALTER ROUTINE(関数,手続き,及びトリガのSQLオブジェクトの再作成) |
SQLコンパイルオプションの「ISOLATION データ保証レベル 〔FOR UPDATE { EXCLUSIVE | COMPATIBLE }〕」 |
FOR UPDATE { EXCLUSIVE | COMPATIBLE }を指定しない場合,FOR UPDATE EXCLUSIVEを仮定します。 |
→ |
FOR UPDATE EXCLUSIVEを指定しない場合,FOR UPDATE COMPATIBLEを仮定します。 |
更新を前提とした検索に対する排他モードのロックを自動設定 |
排他モード変更によるSQL文の見直し |
CREATE TABLE (表定義) |
表オプションの「PCTFREE」 |
「PCTFREE」を指定しない場合,PCTFREE=(30,10)を仮定します。ただし,クラスタキーのないFIX表の場合で,PCTFREEを省略したときは,PCTFREE=(0,0)を仮定します。 |
「PCTFREE」を指定しない場合,PCTFREE=(30,10)を仮定します。ただし,クラスタキーのないFIX表の場合で,PCTFREEを省略したときは,PCTFREE=(0,0)を仮定します。 |
「PCTFREE」を指定しない場合,PCTFREE=(30,10)を仮定します。 |
DBの格納効率向上 |
なし |
表オプションの「SEGMENT REUSE」 |
「SEGMENT REUSE」の指定有無に関係なく,空き領域の再利用機能を適用します。ただし,リバランス表,一時表の場合は,空き領域の再利用機能を適用しません。 |
「SEGMENT REUSE」の指定有無に関係なく,空き領域の再利用機能を適用します。ただし,リバランス表,一時表の場合は,空き領域の再利用機能を適用しません。 |
「SEGMENT REUSE」を指定しない場合,空き領域の再利用機能を適用しません。 |
DBの空き領域のサーチ方法の変更によるSQL安定稼働 |
なし |
|
表オプションの「SEGMENT REUSE」の「OPTION 再利用オプション値」 |
再利用オプション値として常に3を仮定し,再利用オプション機能を適用します。 |
再利用オプション値として常に3を仮定し,再利用オプション機能を適用します。 |
「OPTION 再利用オプション値」を指定しない場合,再利用オプション機能を適用しません。 |
DBの空き領域のサーチ方法の変更によるSQL安定稼働 |
なし |
|
列定義の「NO SPLIT」 |
定義長が256バイト以上の可変長文字列(VARCHAR,NVARCHAR,MVARCHAR)を定義する場合,ノースプリットオプションを常に適用します。 |
定義長が256バイト以上の可変長文字列(VARCHAR,NVARCHAR,MVARCHAR)を定義する場合,ノースプリットオプションを常に適用します。 |
「NO SPLIT」を指定しない場合,ノースプリットオプションを適用しません。 |
DB容量削減 |
なし |
|
ALTER TABLE (表定義変更) |
列追加定義の「NO SPLIT」 |
定義長が256バイト以上の可変長文字列(VARCHAR,NVARCHAR,MVARCHAR)を定義する場合,ノースプリットオプションを常に適用します。 |
定義長が256バイト以上の可変長文字列(VARCHAR,NVARCHAR,MVARCHAR)を定義する場合,ノースプリットオプションを常に適用します。 |
「NO SPLIT」を指定しない場合,ノースプリットオプションを適用しません。 |
DB容量削減 |
なし |
(2) 指定不要になったSQL構文
省略時解釈以外の指定をする必要がないため指定不要になったSQL構文を,次の表に示します。
SQL |
|
---|---|
ALTER TABLE(表定義変更) |
列追加定義の「NO SPLIT」 |
CREATE TABLE(表定義) |
列定義の「NO SPLIT」 |
表オプションの「SEGMENT REUSE」の「OPTION 再利用オプション値」 |