次に、SQL Anywhere バージョン 11.0.0 での動作の変更を、カテゴリごとに示します。
カタログの変更 次の表は、バージョン 11.0.0 でのカタログの変更点を示しています。
これらの変更点を使用するには、データベースをアップグレードする必要があります。SQL Anywhere サーバーのアップグレードを参照してください。
テーブル名とビュー名 | 変更点の説明 |
---|---|
ISYSTAB/SYSTAB |
|
ISYSIDX/SYSIDX |
|
ISYSFILE | このシステムテーブルは推奨されなくなりました。lob_map を除くすべてのカラムは新しい ISYSDBSPACE システムテーブルにあります。lob_map カラムは新しい ISYSDBFILE システムテーブルにあります。 |
ISYSDBFILE/SYSDBFILE | DB 領域に関する情報を格納するための新しいテーブルです。 |
ISYSDBSPACE/SYSDBSPACE | DB 領域に関する情報を格納するための新しいテーブルです。 |
SYSDBSPACEPERM/ISYSDBSPACEPERM | DB 領域のパーミッションを格納するための新しいテーブルです。 |
ISYSOBJECT/SYSOBJECT | file_id カラムの名前が dbspace_id に変更されました。また、object_type カラムに 17 (テキスト設定) と 18 (DB 領域) の 2 つの新しい値を格納できるようになりました。 |
SYSINDEXES | 外部キーとプライマリキーのインデックスを他のインデックスと区別するために、indextype フィールドでそれぞれ「外部キー」および「プライマリキー」と識別されるようになりました。 |
ISYSCAPABILITYNAME | このテーブルはカタログに含まれなくなりました。対応する SYSCAPABILITYNAME システムビューはまだ使用できますが、サーバープロパティを使用して生成されます。 |
ISYSEVENTTYPE | このテーブルはカタログに含まれなくなりました。対応する SYSEVENTTYPE システムビューはまだ使用できますが、サーバープロパティを使用して生成されます。 |
ISYSVIEW | マテリアライズドビューをリフレッシュしたトランザクションのシーケンス番号を格納する mv_last_refreshed_tsn という新しいカラムが追加されました。 |
ISYSLOGINMAP/SYSLOGINMAP | ログインポリシーに関する情報を格納するための新しいテーブルです。 |
ISYSLOGINPOLICY/SYSLOGINPOLICY | ログインポリシーに関する情報を格納するための新しいテーブルです。 |
ISYSLOGINPOLICYOPTION/SYSLOGINPOLICYOPTION | ログインポリシーに関する情報を格納するための新しいテーブルです。 |
ISYSTEXTCONFIG/SYSTEXTCONFIG | テキスト設定オブジェクトに関する情報を格納するための新しいテーブルです。 |
ISYSTEXTIDX/SYSTEXTIDX | テキストインデックスに関する情報を格納するための新しいテーブルです。 |
ISYSTEXTIDXTAB/SYSTEXTIDXTAB | テキストインデックスに関する情報を格納するための新しいテーブルです。 |
PHP 関数名の変更 PHP 関数名のプレフィクスは、すべて sqlanywhere_ から sasql_ に変更されました。sqlanywhere_ プレフィクスも関数を呼び出すときにまだ使用できますが、廃止される予定です。新しいプレフィクスを使用するようにアプリケーションを変更してください。
INSERT...ON EXISTING UPDATE 文でのトリガーの起動 これまでは、INSERT...ON EXISTING UPDATE 文を実行したとき、データが更新された場合はトリガーは起動しませんでした。このリリースでは、更新に対して文レベルの AFTER トリガーが起動します。
REFRESH MATERIALIZED VIEW 文 リフレッシュの独立性レベルとして STATEMENT SNAPSHOT と READONLY STATEMENT SNAPSHOT を指定できなくなりました。独立性レベルに SNAPSHOT を指定するとこれらのオプションと同じ効果が得られます。REFRESH MATERIALIZED VIEW 文を参照してください。
REORGANIZE TABLE 文 同じテーブルに対して複数の REORGANIZE TABLE 文を同時に実行しようとするとエラーが発生します。
sa_validate システムプロシージャー sa_validate の check_type、エクスプレス、チェックサムの引数が廃止され、指定しても効果はありません。このリリースでは、デフォルトでチェックサム検証が実行されます。また、引数を指定しないで sa_validate システムプロシージャーを呼び出すと、データベースサーバーでは、すべてのテーブル、マテリアライズドビュー、インデックスの検証に加えて、チェックサムを含むデータベース自体が検証されます。sa_validate システムプロシージャーを参照してください。
-gss サーバーオプション Windows XP 以降で -gss サーバーオプションがサポートされるようになりました。これまでのリリースでは、このオプションは Windows オペレーティングシステムではサポートされていませんでした。-gss dbeng12/dbsrv12 サーバーオプションを参照してください。
-gx サーバーオプションのサポート終了 このリリースでは、-gx サーバーオプションがサポートされなくなりました。SQL Anywhere データベースサーバーの起動時に -gx オプションを指定すると、エラーが発生します。
LazyClose 接続パラメーターのデフォルト設定が AUTO に変更 これまでのバージョンでは、アプリケーションでカーソルを閉じるとき、LazyClose 接続パラメーターが NO に設定されていなかった場合はデータベースサーバーへの往復が必要でした。このリリースでは、カーソルを閉じる要求はデフォルトで複数のカーソル分がキューイングされるようになったので、往復がなくなり、パフォーマンスが向上します。LazyClose 接続パラメーターには、YES、NO、AUTO (デフォルト) の 3 つの値を指定できるようになりました。これまでのリリースでは、YES がデフォルト設定でした。LazyClose (LCLOSE) 接続パラメーターを参照してください。
Embedded SQL のインポートライブラリの変更 DBLIB のインポートライブラリの Watcom と Borland のバージョンが含まれなくなりました。これらはそれぞれ dblibtw.lib と dblibtb.lib です。これらのインポートライブラリの代わりにインポート定義ファイル (%SQLANY11%\SDK\Lib\Def\dblib.def ファイル) が用意されています。
データベースツールのインポートライブラリの変更 データベースツールのインポートライブラリの Watcom と Borland のバージョンが含まれなくなりました。これらはそれぞれ dbtlstw.lib と dbtlstb.lib です。これらのインポートライブラリの代わりにインポート定義ファイル (%SQLANY11%\SDK\Lib\Def\dbtool.def ファイル) が用意されています。
ローを受信しなかったときの DBLIB インジケーターの動作の定義 フェッチ時または実行時にデータベースサーバーからローを受信しなかった場合 (エラーが発生したか、結果セットの末尾に到達した場合)、インジケーターの値が変更されなくなりました。インジケーター変数を参照してください。
ODBC SQLGetConnectAttr ODBC の SQLGetConnectAttr 呼び出しを使用して SQL_ATTR_CONNECTION_DEAD 属性を取得すると、接続が切断されていた場合、切断後にサーバーに要求が送信されていなくても、値 SQL_CD_TRUE が取得されるようになりました。接続が切断したかどうかの確認は、サーバーに要求を送信しないで行われ、切断された接続は数秒以内に検出されます。接続が切断されるのには、アイドルタイムアウトなどの複数の理由があります。
これまでのリリースでは、SQL_ATTR_CONNECTION_DEAD で値 SQL_CD_TRUE が取得されたのは、接続が明示的に切断されたか、接続が切断された後に、SQLExecDirect を呼び出すなどして ODBC ドライバーからサーバーに要求が送信された場合だけでした。
utility_db という名前のデータベースを作成または起動できない utility_db という名前は SQL Anywhere サーバーユーティリティデータベースのために予約されています。utility_db.db という名前のデータベースを新規に作成するか、この名前の既存のデータベースを起動しようとすると、エラーが返されます。utility_db という名前の既存のデータベースがある場合は、別の名前で起動できます。ユーティリティデータベースを参照してください。
計算カラムの依存性 これまでは、更新操作または挿入操作をエラーなしで続行するには、アプリケーションでトリガーを使用して、NOT NULL と宣言されているカラムに NULL 以外の値を割り当てることができました。これは、このカラムに依存する計算カラムに影響し、意図した計算が計算値に反映されない場合がありました。このリリースでは、計算カラムが依存する NOT NULL カラムに NULL 値を設定しようとするとエラーメッセージが表示され、トリガーは起動しません。計算カラムへの挿入と更新を参照してください。
ピリオドを含む DB 領域名のエラー これまでのリリースでは、引用符で囲んでいない DB 領域名にピリオドが含まれていた場合、DB 領域名のピリオドの前の部分は、サーバーで通知されることなく無視されていました。このリリースでは、このような名前があった場合、データベースサーバーでエラーが生成されます。
SQL Anywhere Web サーバーでの SSL バージョン 2.0 のサポート終了 SQL Anywhere Web サーバーを使用するとき、SSL バージョン 3.0 と TLS バージョン 1.0 の接続だけがサポートされます。SSL バージョン 2.0 の接続はサポートされません。
CREATE SERVICE オプションの DATATYPE のデフォルト値の変更 DATATYPE 句のデフォルト値が OFF から ON に変更されました。以前の動作が必要な場合は、CREATE SERVICE の定義に DATATYPE OFF を明示的に含めてください。CREATE SERVICE 文 [SOAP Web サービス]を参照してください。
一部の保護された機能の名前変更 このリリースでは、次の保護された機能の名前が変更されています。
以前の名前 | 新しい名前 |
---|---|
xp_read_file | read_file |
xp_write_file | write_file |
unload_table | write_file |
load_table | read_file |
詳細については、-sf dbeng12/dbsrv12 サーバーオプションを参照してください。
チェックサムの動作の変更 バージョン 11 で作成したデータベースまたはバージョン 11 にアップグレードしたデータベースを、ネットワークドライブやリムーバブルドライブなどのメディアで実行した場合、データベースサーバーによってチェックサムが自動的に有効にされます。データベースがこのようなデバイスにあるかぎり、チェックサムは有効なままです。チェックサムを使用した破損の検出を参照してください。
HTTP 接続でデータベースが自動停止されない これまでのリリースでは、データベースを自動的に停止するように設定すると、HTTP 接続が切断され、データベースへの接続が他になかった場合にデータベースが停止していました。このリリースでは、最後の Command Sequence 接続または TDS 接続が切断したときにのみデータベースが自動的に停止します。
データベースへの唯一の接続が HTTP 接続で、自動的に停止するようにデータベースが設定されている場合、HTTP 接続が切断したときにデータベースは自動的に停止しません。また、自動的に停止するように設定されているデータベースに HTTP 接続と Command Sequence 接続または TDS 接続がある場合は、最後の Command Sequence 接続または TDS 接続が切断したときにデータベースが停止します。このときに HTTP 接続がまだあった場合は切断されます。-ga dbeng12/dbsrv12 サーバーオプションとAutoStop (ASTOP) 接続パラメーターを参照してください。
データベースミラーリングの動作の変更 これまでのリリースでは、プライマリサーバーまたはミラーサーバーの -xp オプションで指定した接続パラメーターが無効であった場合、データベースサーバーで接続が繰り返し試行されましたが、接続できませんでした。このリリースでは、-xp オプションで指定したパラメーターが無効であり、サーバーで複数のデータベースが実行されている場合、ミラーデータベースの起動に失敗し、再接続は試行されません。ミラーデータベースが、データベースサーバーで実行されている唯一のデータベースである場合は、データベースサーバーが起動しません。
マテリアライズドビューのデフォルトのリフレッシュ動作 これまでは、マテリアライズドビューのデフォルトのリフレッシュ動作は WITH EXCLUSIVE MODE でした。このリリースでは、デフォルトのリフレッシュ動作は、マテリアライズドビューが IMMEDIATE REFRESH と定義されているかどうか、またデータベースでスナップショットアイソレーションレベルが有効になっているかどうかによって異なります。REFRESH MATERIALIZED VIEW 文を参照してください。
post_login_procedure データベースオプションの動作の変更 post_login_procedure データベースオプションのデフォルト設定が sa_post_login_procedure システムプロシージャーになりました。post_login_procedure オプションを参照してください。
non_keywords データベースオプション これまでのリリースでは、個々のキーワードの指定に加え、次に示すキーワードリストの中から特別値を使用して、特定のリリース以降のすべてのキーワードをオフにできました。
keywords_4_0_d, keywords_4_0_c, keywords_4_0_b, keywords_4_0_a, keywords_4_0, keywords_5_0_01, keywords_5_0 |
これらの特別値はサポートされなくなりました。個々のキーワードをオフにすることはできます。non_keywords オプションを参照してください。
cooperative_commit_timeout データベースオプション コミット動作が自動的にチューニングされるため、現在ではこのオプション設定は無視されるようになりました。
cooperative_commits データベースオプション コミット動作が自動的にチューニングされるため、現在ではこのオプション設定は無視されるようになりました。
リモートデータアクセスでの quoted_identifier データベースオプション設定の尊重 リモートデータアクセスを使用している場合、quoted_identifier オプションのローカル設定を使用して、Adaptive Server Enterprise と Microsoft SQL Server に対する引用符付き識別子の使用を制御できるようになりました。たとえば、quoted_identifier オプションをローカルで Off に設定すると、Adaptive Server Enterprise に対して引用符付き識別子がオフになります。次の項を参照してください。
precision と scale の各データベースオプションのスコープの変更 これまでのリリースでは、個々のユーザーに precision と scale の各データベースオプションを設定したり、設定のスコープがテンポラリであることを指定したりできました。ただし、これらの設定はデータベースのリカバリ性に影響する可能性があります。テーブルやドメインを作成または変更する DDL 文の実行時に、テンポラリ設定またはユーザーレベルの設定が、対応する PUBLIC 設定と異なる場合、データベースの再構築時に問題が生じる可能性があります。このリリースでは、precision と scale の各データベースオプションの動作は次のようになっています。
データベースサーバーのバージョン | バージョン 10 以前のデータベース | バージョン 11 のデータベース | バージョン 11 にアップグレードしたデータベース | バージョン 10 以前のデータベースのアンロード |
---|---|---|---|---|
11 |
PUBLIC 設定は可能 ユーザー設定は可能 テンポラリ設定は不可 |
PUBLIC 設定は可能 ユーザー設定は不可 テンポラリ設定は不可 |
PUBLIC 設定は可能 ユーザー設定は不可 テンポラリ設定は不可 |
PUBLIC 設定はアンロードされる ユーザー設定はアンロード時に破棄される |
10 以前 |
PUBLIC 設定は可能 ユーザー設定は可能 テンポラリ設定は可能 |
なし | なし |
PUBLIC 設定はアンロードされる ユーザー設定はアンロードされる |
バージョン 10 以前のデータベースサーバーでは、引き続き scale と precision の各オプションをテンポラリに、また個々のユーザーに設定できます。
precision と scale の各データベースオプションのユーザーレベル設定またはテンポラリ設定を頼りにしないことをおすすめします。データベースの再構築時に問題が生じる可能性が含まれており、データベースサーバーが予測できない動作をする可能性もあります。
次の項を参照してください。
OPTION 句の動作の変更 INSERT、UPDATE、DELETE、SELECT、UNION、EXCEPT、INTERSECT の各文の OPTION 句でサポートされていないデータベースオプションを指定すると、エラーが返されるようになりました。次の項を参照してください。
読み込み専用データベースのロールバックログの動作の変更 これまでのリリースでは、トランザクション指向のテンポラリオブジェクトがある読み込み専用データベースの操作はトランザクション指向として処理されず、ロールバックログ情報が維持されませんでした。このリリースでは、読み込み専用データベース内のトランザクション指向テンポラリオブジェクトに完全にトランザクション指向のセマンティックがあります。これらのオブジェクトは、コミット、ロールバック、セーブポイントまでのロールバックの対象となります。
Itanium 64 ビットのサポート対象プラットフォームの変更 これまでのバージョンでは、Itanium II チップ搭載の Windows Server 2003 を対象としたソフトウェアの 64 ビット通常版と、64 ビットの Linux と HP-UX の各オペレーティングシステムを対象としたクライアント/サーバー限定版がありました。
このリリースでは、64 ビット HP-UX を対象としたクライアント/サーバー限定版だけを使用できます。
アンロードユーティリティ (dbunload) の動作の変更 これまでのリリースでは、dbunload の -ea、-ek、-ep の各オプションを、-an オプションまたは -ar オプションと同時に指定して、新しいデータベースの暗号化を制御する必要がありました。このリリースでは、データベースの全体またはその一部をアンロードした後に再ロードしなかった場合、-ea、-ek、-ep の各オプションによって、作成されるテーブルデータファイルの暗号化が制御されます。これらのファイルを使用して Interactive SQL からデータベースを再ロードするとき、READ 文のパラメーターとして暗号化キーを指定する必要があります。アンロードユーティリティ (dbunload)を参照してください。
また、これまでのリリースでは、データベースの抽出に使用する dbunload のバージョンが、データベースを実行しているデータベースサーバーと同じバージョンである必要はありませんでした。このリリースでは、バージョン 10.0.0 以降のデータベースで dbunload を使用する場合、使用する dbunload のバージョンが、データベースへのアクセスに使用するデータベースサーバーのバージョンと一致する必要があります。dbunload のバージョンがデータベースサーバーのバージョンより古いまたは新しい場合は、エラーがレポートされます。
抽出ユーティリティ (dbxtract) の動作の変更 これまでのリリースでは、データベースの抽出に使用する dbxtract のバージョンが、データベースを実行しているデータベースサーバーと同じバージョンである必要はありませんでした。このリリースでは、バージョン 10.0.0 以降のデータベースで dbxtract を使用する場合、使用する dbxtract のバージョンが、データベースへのアクセスに使用するデータベースサーバーのバージョンと一致する必要があります。dbxtract のバージョンがデータベースサーバーのバージョンより古いまたは新しい場合は、エラーがレポートされます。
ロックの動作の変更 これまでのリリースでは、独立性レベル 0 で実行されている UPDATE 文または DELETE 文が、文の処理対象ではないローのローロックをブロックする場合がありました。このリリースでは、UPDATE 文または DELETE 文が、文の処理対象ではないローに意図的ロックまたは排他ロックをかける可能性は低くなっています。アプリケーションを開発する際は、UPDATE 文と DELETE 文に独立性レベル 0 または 1 を使用する場合は注意し、動作がアプリケーションで許容可能であることを確認する必要があります。更新時のロックと削除時のロックを参照してください。
プロパティ名の変更 このリリースでは、次のプロパティの名前が変更されています。
以前の名前 | 新しい名前 |
---|---|
CacheHitsEng | CacheHits |
CacheReadEng | CacheRead |
DiskReadEng | DiskRead |
ReadHint | DiskReadHint |
ReadHintScatter | DiskReadHintPages |
ReadHintScatterLimit | DiskReadHintScatterLimit |
詳細については、接続、データベース、データベースサーバーのプロパティを参照してください。
言語選択ユーティリティ (dblang) これまでのリリースでは、このユーティリティは、インストール時に多言語リソース開発キット (IRDK) を選択した場合にのみインストールされていました。このリリースでは、すべての多言語リソースと言語選択ユーティリティ (dblang) が常にインストールされます。
テンポラリテーブルとインデックスのデフォルトの DB 領域 テンポラリテーブルは、TEMPORARY DB 領域だけに作成できます。CREATE TABLE 文の IN 句で SYSTEM DB 領域を指定すると、IN 句は無視され、テンポラリテーブルはテンポラリ DB 領域に作成されます。CREATE TABLE 文の IN 句でユーザー定義の DB 領域を指定すると、エラーが返されます。また、テンポラリオブジェクト作成時は default_dbspace オプションが無視されます。
テンポラリテーブルへのデータのロード テンポラリテーブルにデータをロードするとき、ON COMMIT DELETE と指定されたローカルテンポラリテーブルをロードできなくなりました。これまでのリリースでは、ON COMMIT DELETE ROWS と指定して定義されたローカルテンポラリテーブルにデータをロードできました。
このリリースでは、LOAD TABLE 文を実行すると、オートコミットが自動的に実行されます。これまでのリリースではオートコミットは実行されない場合もありました。
データベースサーバーオプション サーバーオプション -uc と -ui が Mac OS X でサポートされるようになりました。これまでは、Linux だけでサポートされていました。Linux では、-ui サーバーオプションを使用すると、[サーバー起動オプション] ウィンドウが開き、データベースサーバーメッセージウィンドウが表示され、X-Window Server が起動するかどうかにかかわらず、データベースサーバーが起動します。Mac OS X では、-ui を使用すると、データベースサーバーメッセージが新しいウィンドウに表示され、使用可能な表示がない場合はデータベースサーバーがシェルモードで起動します。-uc サーバーオプションでは、データベースサーバーがシェルモードで起動します。-uc dbeng12/dbsrv12 サーバーオプションと-um dbeng12/dbsrv12 サーバーオプションを参照してください。
Unicode 呼び出しをサポートしない ODBC ドライバーでリモートデータアクセスが機能しない Unicode 呼び出しをサポートしない ODBC ドライバーでリモートデータアクセスが機能しなくなりました。このため、Unicode 以外の ODBC ドライバーの場合、リモートデータアクセスでは ODBC ドライバーからのデータに対して文字セットの変換が行われません。
SYSFILE システムビュー SYSFILE 互換ビューにテンポラリファイル用のローが含まれるようになりました。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |