Adaptive Server Anywhere の名前の変更 バージョン 10.0.0 では、Adaptive Server Anywhere の名前が SQL Anywhere に変更されました。
アップグレードの変更 バージョン 9.0.2 以前のデータベースをバージョン 10 にアップグレードするために、データベース・アップグレード・ウィザード、アップグレード・ユーティリティ (dbupgrad)、ALTER DATABASE UPGRADE 文を使用することはできません。以前のバージョンのデータベースをバージョン 10 にアップグレードするには、アンロードと再ロードを実行し、データベースを再構築する必要があります。SQL Anywhere のアップグレードを参照してください。
パスワードの変更 新しく作成されたデータベースでは、データベースでの設定にかかわらず、すべてのパスワードは大文字と小文字が区別されます。新しいデータベースのデフォルトの DBA パスワードは、sql です。
既存のデータベースを再構築する場合、パスワードの大文字と小文字の区別は、次のように決まります。
パスワードを最初に入力したのが大文字と小文字を区別しないデータベースだった場合、そのパスワードの大文字と小文字は区別されません。
パスワードを最初に入力したのが大文字と小文字を区別するデータベースだった場合、大文字のパスワードと、大文字と小文字が混在したパスワードでは、大文字と小文字が区別されます。ただし、パスワードをすべて小文字で入力した場合、パスワードの大文字と小文字は区別されません。
既存のパスワードと新しいパスワードの両方に加えられた変更は、大文字と小文字が区別されます。
データベース・サーバで、パスワードのハッシュ処理に SHA256 が使用されるようになりました。古いデータベースから再ロードされるパスワードには古い (独自の) ハッシュ処理アルゴリズムが引き続きサポートされていますが、新しいパスワードにはすべて SHA256 が使用されます。
パスワードは UTF-8 で格納されるようになりました。そのため、異なる文字セットを使用するデータベースに再ロードされても、データベースは動作し続けます。
以前のリリースでは、Embedded SQL から接続すると、DBA パーミッションでデータベースに接続した後で、どのユーザでもパスワードを指定することなく同じデータベースに対して 2 つ目の接続を確立できていました。今回のリリースでは、接続ごとにパスワードの指定が必要になりました。
ブランク埋め込みの変更 SQL Anywhere の以前のリリースでは、ブランクを埋め込まれたデータベースで文字列を比較した場合のセマンティックは、比較される 2 つの文字列に無限のブランクが埋め込まれているかのようになっていました。バージョン 10 では、これらのセマンティックが変更され、各文字列の後続ブランクを無視して比較を行うようになりました。
等号 (=) 比較と不等号 (<>) 比較の場合は、セマンティックに変更はありません。どちらの方法 (ブランクの埋め込みと後続ブランクの無視) でも同じ結果になります。ただし、不等比較の場合は異なります。たとえば、2 バイトの文字列 'a*'
があるとします ('*' は、ブランクの値より小さい、データベースの照合順の文字を表します)。以前のバージョンの SQL Anywhere では、比較述部 'a*' < 'a'
は TRUE を返していました。バージョン 10 では、短い文字列には比較前にブランクが埋め込まれないので、この述部は FALSE となります。
ブランクの埋め込みの詳細については、初期化ユーティリティ (dbinit)とCREATE DATABASE 文を参照してください。
プロパティの戻り値の大文字と小文字 サーバ・プロパティ (PROPERTY 関数で返される) は以前のバージョンでは YES または NO を返していましたが、Yes または No を返すようになりました。データベース・プロパティ (DB_PROPERTY 関数で返される) と接続プロパティ (CONNECTION_PROPERTY 関数で返される) は、以前のバージョンでは ON または OFF を返していましたが、On または Off を返すようになりました。この変更は、大文字と小文字を区別するデータベースや、大文字と小文字を区別する文字列比較を使用するアプリケーションに影響する可能性があります。
サーバ・プロパティの戻り値の変更 以前のリリースでは、サーバ・プロパティ ConnsDisabled と RememberLastStatement は値 ON と OFF を返していました。これらは値 Yes と No を返すようになりました。データベース・サーバ・プロパティを参照してください。
sasrv.ini ファイルのデフォルト・ロケーションの変更 sasrv.ini のデフォルトのロケーションは、Windows では %ALLUSERSPROFILE%\Application Data\SQL Anywhere 10、UNIX では ~/.sqlanywhere10 です。以前のリリースでは、UNIX でのファイル名は .sasrv.ini でした。このファイルの名前は、すべてのプラットフォームで、sasrv.ini になりました。
長い名前のデータベース・サーバへの接続 Windows と UNIX では、バージョン 9.0.2 以前のクライアントは、40 バイトより長い名前が設定されたバージョン 10.0.0 以降のデータベース・サーバに接続できません。
データベース・サーバで文字セットの変換は常に有効 文字セットの変換を有効/無効にする -ct データベース・サーバ・オプションはサポートされなくなりました。データベース・サーバで文字セット変換は常に有効になりました。ただしデータベース・サーバで変換が不要であると判断された場合は、使用されません。文字セット変換を無効にするには、クライアントから CharSet=none と指定します。CharSet 接続パラメータ [CS]を参照してください。
Windows CE でサポートされていない文字セット変換 文字セット変換は Windows CE ではサポートされていません。以前のリリースでは、文字セット変換は Windows CE 用のデータベース・サーバ上では無効になっており、データベースにはどの文字セットも使用することができました。今回のリリースでは、オペレーティング・システムの文字セットまたは UTF-8 のいずれかを使用して、Windows CE 用にデータベースを作成する必要があります。インストール時の考慮事項:Windows Mobile での ICU の使用を参照してください。
システム・プロシージャと関数の変更 システム・プロシージャと関数の変更は次のとおりです。
複数のシステム・プロシージャの内部への組み込み 外部システム・プロシージャの xp_read_file、xp_write_file、xp_sprintf、xp_scanf、xp_cmdshell が、内部システム・プロシージャになりました。
sa_validate システム・プロシージャ sa_validate システム・プロシージャで、VALIDATE 権限が必要になりました。sa_validate システム・プロシージャを参照してください。
sa_reset_identity システム・プロシージャ table-name パラメータが必須になりました。また、owner-name パラメータを指定しない場合は、table-name パラメータがデータベース内のテーブルをユニークに識別する必要があります。sa_reset_identity システム・プロシージャを参照してください。
sa_locks システム・プロシージャ sa_lock システム・プロシージャの出力が変更され、追加情報 (接続 ID、ユーザ ID、テーブル名、ロック・クラス、ロック期間) を返すようになりました。sa_locks システム・プロシージャを参照してください。
RAND 関数 以前のバージョンでは、各接続のシードが同じ値に設定されていたため、RAND 関数が各接続で同一のシーケンスを返すことがありました。今回のリリースでは、各接続がさまざまなランダム・シーケンスを認識するため、各接続はユニークなシードが設定されるようになりました。RAND 関数 [数値]を参照してください。
コールバック関数 DB_CALLBACK_START と DB_CALLBACK_FINISH コールバック関数 DB_CALLBACK_START と DB_CALLBACK_FINISH がすべてのプラットフォームでサポートされるようになりました (以前は Windows プラットフォームのみでサポートされていました)。db_register_a_callback 関数を参照してください。
UNC 名を使用して指定されたファイルで分散読み込みが使用されなくなった リモート・コンピュータ上のファイルや UNC 名 (たとえば \\mycomputer\myshare\mydb.db) で指定されたファイルに対して、分散読み込みが使用されなくなりました。適切なページ・サイズの使用を参照してください。
プライマリ・キー制約と外部キー制約でのカラムの順序 プライマリ・キー制約を作成するときは、任意の順序でカラムを指定できます。テーブルにカラムが出現する順序は関係ありません。また、外部キーのカラムとプライマリ・キーのカラムのマッピングを指定すれば、参照先のプライマリ・キーとカラムの順序が異なる外部キーを作成できるようになりました。CREATE TABLE 文の PRIMARY KEY 句を参照してください。
インデックスで重複したカラム名を使用できなくなった 以前のバージョンでは、インデックスのカラムを重複参照できていましたが、プライマリ・キー、外部キー、一意性制約指定は除外されていました。今回のバージョンでは、すべてのタイプのインデックスで動作が一貫されるようになりました。カラム名を重複して指定すると、エラーが返されます。また、旧バージョンのデータベースに重複したカラム参照のあるインデックスが含まれていると、dbunload ユーティリティによって reload.sql の生成時に重複したカラムがインデックスから削除されます。CREATE TABLE 文を参照してください。
暗号化データベース・プロパティ SELECT DB_PROPERTY( 'Encryption' )
を実行すると、データベースが暗号化されていない場合でも、None 以外の値を返すようになりました。これは、データベースでテーブル暗号化が有効な場合に発生します。アプリケーションでデータベースが暗号化されているかを確認する方法としてこのコマンドを実行する場合は、代わりに
SELECT DB_PROPERTY( 'EncryptionScope' )
を使用してください。データベース・プロパティを参照してください。
FIPS を使用して HTTPS を開始する場合の構文の変更 この場合、以前のバージョンでは -xs HTTPS_FIPS(...)
を指定していました。今回のバージョンでは、-xs HTTPS(FIPS=yes;...)
を指定する必要があります。以前の構文はサポートはされますが、廃止される予定です。-xs サーバ・オプションを参照してください。
ユーザ ID の最大長は 128 バイト 以前のリリースでは、文でユーザ ID が必要な場合、データベース・サーバでは 128 バイトを超えるユーザ ID を使用する前にトランケートしていました。string_rtruncation オプションを設定した場合は、トランケーション・エラーが返されていました。これが 128 バイトを超えるユーザ ID を指定した場合は、string_rtruncation オプションの設定に関係なく、データベース・サーバがエラーを返すようになりました。識別子を参照してください。
サーバ名の最大長 TCP/IP 接続と共有メモリ接続で、データベース・サーバ名の最大長が 40 バイトから 250 バイトに増加しました。-n サーバ・オプションを参照してください。
識別子で使用可能な文字の変更 識別子で二重引用符と円記号を使用できなくなりました。識別子を参照してください。
LicensesInUse サーバ・プロパティ名の変更 サーバ・プロパティ LicensesInUse の名前は、UniqueClientAddresses に変更されました。データベース・サーバ・プロパティを参照してください。
SQL Anywhere OLE DB プロバイダ名の変更 SQL Anywhere OLE DB プロバイダの名前は、以前は ASAProv、ASAProv.90、ASAProv.80 でしたが、SAOLEDB になりました。バージョン 10 のプロバイダは、SAOLEDB.10 という名前で具体的に参照できます。
SQL Anywhere サンプル・データベース ODBC DSN の変更 ODBC データ・ソースの名前は、以前は ASA 9.0 Sample でしたが、SQL Anywhere 10 Demo になりました。
接続文字列の変更 ODBC 接続と OLE DB 接続で、接続パラメータを検出する場所の優先度が接続文字列、SQLCONNECT 環境変数、データ・ソースの順になりました。以前のバージョンでは、ODBC 接続と OLE DB 接続でデータ・ソースの優先度は SQLCONNECT よりも高くなっていました。接続パラメータの構文ルールを参照してください。
空の値を使用した接続パラメータが未指定として扱われるようになった すべての API で、空の値で指定された接続パラメータは、パラメータが指定されなかったものとして扱われます。以前のリリースでは空の値は、指定された場所と使用されている API に応じて未指定または空の文字列として扱われていました。接続パラメータの構文ルールを参照してください。
監査がオンの場合はトランザクション・ログをオフにできない 以前のバージョンのソフトウェアでは、監査がオンになっているデータベースでトランザクション・ログの使用を停止できました。今後は、データベースで監査がオンになると、トランザクション・ログを使用する必要があります。トランザクション・ログの使用を中止する場合は、監査をオフにする必要があります。
監査がオンになっているデータベースは読み込み専用モードで起動できない 以前のバージョンのソフトウェアでは、監査がオンになっているデータベースを読み込み専用モードで開始できました。今回のバージョンでは、監査がオンになっているデータベースは、読み込み専用モードで起動できません。
符号付き BIGINT カラムの精度が 20 から 19 になった 以前は、ODBC アプリケーションで SQL_BIGINT を使用して符号付き BIGINT カラムを記述すると、不適切な精度 20 の値が返されていました。今回のバージョンでは、精度 19 の値が返されるようになりました。以前の (不適切な) 値に依存するアプリケーションは変更する必要があります。
Java VM の強化 SQL Anywhere では、Java オプションは別途ライセンスが必要なコンポーネントとして提供されなくなりました。データベース内の Java は、Java コードを実行するために内部 VM を使用するのではなく、外部 VM を使用するようになりました。これによって、任意の Java VM を使用できるようになり、特定の JDK バージョンや Java ターゲットに限定されなくなりました。新しく初期化されるデータベースは、常に Java 対応になります。
その結果、次の変更が行われました。
サポート対象外のデータベース・オプション SQL Anywhere による以下のオプションのサポートは終了しました。
サポート対象外のプロパティ 以下のプロパティは、サポートされなくなりました。
データベース・プロパティ
データベース・サーバ・プロパティ
接続プロパティ
新しい JavaVM プロパティ JavaVM データベース・プロパティは、データベース内の Java を実行するためにデータベース・サーバが使用する Java VM のパスを返します。
サポート対象外の互換ビュー・カラム システム互換ビューで、次のカラムを使用できなくなりました。
データベース・ユーティリティで廃止された Java オプション 次のデータベース・ユーティリティ・プロパティは廃止される予定です。
CREATE DATABASE 文と ALTER DATABASE 文の一部の Java 関連句で Java サポートが廃止された CREATE DATABASE 文では、JAVA ON | OFF 句と、JDK バージョン句がサポートされなくなりました。ALTER DATABASE 文では、REMOVE JAVA 句がサポートされなくなりました。
新しい Java ファイル 前述の変更のほかに、java\sajvm.jar ファイルが追加されました。
Ping ユーティリティ (dbping) 以前は、データベース・サーバがプロパティ値に対して NULL を返すと、Ping ユーティリティ (dbping) はエラーを返していました。今回のバージョンでは、プロパティ値が不明の場合に、dbping は NULL を出力し、成功のリターン・コードで終了するようになりました。プロパティ値が不明の場合に dbping が失敗のエラー・コードで終了するようにする場合は、-en オプションを指定できます。Ping ユーティリティ (dbping)を参照してください。
環境変数の名前の変更 このリリースでは、次の環境変数の名前が変更されています。
以前の名前 | 新しい名前 |
---|---|
ASTMP | SATMP |
ASDIR | SADIR |
ASLOGDIR | SALOGDIR |
ASLANG | SALANG |
ASCHARSET | SACHARSET |
PHP モジュールのファイル名の変更 PHP ファイルの命名規則が変更されました。以前のバージョンでは、ファイル名は phpX_sqlanywhereY.dll という形式でした (X は PHP のメジャー・バージョン番号、Y は SQL Anywhere のメジャー・バージョン番号)。今回のバージョンでは、PHP モジュール・ファイルの名前は php-a.b.c_sqlanywhereY.dll という形式になります (a.b.c はファイルのビルド元 PHP ソースの完全なバージョン番号、Y は SQL Anywhere のメジャー・バージョン番号)。たとえば php-5.0.2_sqlanywhere10.dll のようになります。
PrefetchBuffer 接続パラメータの値の指定 下位互換のため、PrefetchBuffer 接続パラメータで 16384 未満の値がキロバイトとして解釈されるようになりました。k サフィックスなしでキロバイトを使用する方法は廃止されます。PrefetchBuffer の値が有効な範囲外にあったり k サフィックスなしでキロバイト単位を指定したりしたためにこの値が調整される場合は、実際に使用された PrefetchBuffer 値がクライアント・ログ・ファイルに示されます。PrefetchBuffer 接続パラメータ [PBUF]を参照してください。
システム定義のドメインを削除できない システム定義のドメイン (MONEY、UNIQUEIDENTIFIERSTR など) はデータベースから削除できなくなりました。DROP DOMAIN 文を参照してください。
データベース・ユーティリティの変更 前述したとおり、データベース・ユーティリティは次のように変更されています。
サービス・ユーティリティ (dbsvc) でサービスとしてログインする権限を付与できる サービス・ユーティリティ (dbsvc) で -a オプションを使用し、サービスとしてログインする権限が有効でないアカウントで実行しようとすると、サービスとしてログインする権限を付与するかどうかを指定するプロンプトが表示されます。-y オプションを使用すると、dbsvc はプロンプトせずに、サービスとしてログインする権限を付与しようとします。Windows 用サービス・ユーティリティ (dbsvc)を参照してください。
アンロード・ユーティリティ (dbunload) の -an オプションをリモート・サーバに使用できる この変更以前には、dbunload -an は同じコンピュータ上のサーバのみに対して実行できていました。今回のリリースでは、dbunload -an を別のコンピュータで実行しているサーバに対して実行できるようになりました。アンロード・ユーティリティ (dbunload)を参照してください。
サーバ列挙ユーティリティ (dblocate) ホスト名または IP アドレスのフォーマット ホスト名や IP アドレスは、-n を指定したかどうかに関係なく、任意のフォーマットで使用できます。たとえばサーバが myhost.mycompany.com で実行中で、この IP アドレスが 1.2.3.4 の場合、このコンピュータで実行しているサーバだけを
mycompany.com ドメインの任意のコンピュータからリストするには、dblocate myhost
、dblocate myhost.mycompany.com
、dblocate 1.2.3.4
のいずれでも使用できます。以前のバージョンでは、指定されたホスト名や IP アドレスは dblocate によって表示されるアドレス文字列 (ポート番号を除く) に一致する必要があったため、dblocate myhost.mycompany.com
または dblocate -n 1.2.3.4
だけが機能していました。サーバ列挙ユーティリティ (dblocate)を参照してください。
デフォルト関連の変更 デフォルトは、次のように変更されています。
パーソナル・データベース・サーバのデフォルト TCP/IP 受信アドレスの変更 Windows では、パーソナル・データベース・サーバは 0.0.0.0 ではなく、127.0.0.1 で接続を受信するようになりました。この変更により、Windows ファイアウォールを有効にして SQL Anywhere を実行している場合は、dbeng10 の使用前に例外リストに追加する必要がなくなりました。
これにより、hostname がコンピュータの実際のホスト名や IP アドレスの場合、LINKS=tcpip(HOST=hostname;DOBROADCAST=none)
で接続しようとしても機能しません。ただし、ホスト名 localhost または 127.0.0.1 を使用すると機能します。
デフォルト・データベース・ページ・サイズが 4096 に変更 SQL Anywhere データベースのデフォルト・データベース・ページ・サイズが、4096 バイトから 2048 バイトに変更されました。このページ・サイズにすると、多くの環境でパフォーマンスが向上することがわかっています。CREATE DATABASE 文を参照してください。
-gp オプションを指定しないで、データベースがロードされていない状態でデータベース・サーバを起動した場合、そのデータベース・サーバのデフォルト・ページ・サイズは 4096 になります。
デフォルト最大キャッシュ・サイズの変更 Windows (非 AWE) のデフォルトの最大キャッシュ・サイズが増加しました。デフォルトの最大キャッシュ・サイズは次のどちらか小さい方になりました。
90% of (total_physical_memory - 4 MB)
、2 MB 以上
(available address space - 512 MB)
UNIX キャッシュ・サイズ UNIX での最大キャッシュ・サイズの計算方法が変更されました。デフォルトの最大キャッシュ・サイズは次のように計算されます。
32 ビットの UNIX プラットフォームでは、物理メモリ量の合計の 90% または 1,834,880 KB のいずれか小さい方です。
64 ビットの UNIX プラットフォームでは、物理メモリ量の合計の 90% または 8,589,672,320 KB のいずれか小さい方です。
キャッシュ・メモリ使用の制限と-ch サーバ・オプションを参照してください。
UNIX ストアド・プロシージャ 既存の UNIX アプリケーションをアップグレードするときに、64 ビット・データベース・サーバを使用している場合は、既存の外部ストアド・プロシージャを 64 ビットに変更する必要があります。
NULL 定数を NUMERIC または文字列データ型に変換する場合のデフォルト・サイズ NULL 定数を NUMERIC データ型または文字列データ型 (CHAR、VARCHAR など) に変換する場合、長さが 32767 ではなく 0 に設定されるようになりました。
openxml システム・プロシージャのデフォルト URI の変更 openxml システム・プロシージャを使用する場合、名前空間宣言が指定されなかったときは、デフォルトでプレフィクス mp が Uniform Resource Identifier (URI) にバインドされます。以前のリリースでは、この URI は urn:ianywhere-com:asa-xpath-metaprop でした。この値が urn:ianywhere-com:sa-xpath-metaprop に変更されました。openxml システム・プロシージャを参照してください。
-c、-ch-、-cl サーバ・オプションのキャッシュ・サイズの割合を計算する方法の変更 -c、-ch、または -cl を指定して P (パーセント) を使用すると、物理システム・メモリ量または使用可能なアドレス空間量のどちらか小さい方に対して割合が計算されるようになりました。アドレス割り当てに使用できるよりも多くのメモリをキャッシュに割り当てようとするリスクがなくなります。-c サーバ・オプション、-ch サーバ・オプション、-cl サーバ・オプションを参照してください。
Procedure_profiling サーバ・オプション名の変更 プロシージャ・プロファイリングを制御するサーバ・オプションの正しい名前が ProcedureProfiling になりました。以前の Procedure_profiling も使用できますが、将来のリリースでサポートされなくなる予定です。sa_server_option システム・プロシージャを参照してください。
デフォルト・ポートを使用していない HP-UX 上のデータベース・サーバに接続しているクライアントで、TCP/IP ポート番号の指定不要 以前のリリースで、HP-UX でデータベース・サーバを起動する場合、デフォルト・ポート (2638) が使用中またはデフォルト・ポートを使用しないのであれば、ServerPort [PORT] プロトコル・オプションを使用してポート番号を指定する必要がありました。
HP-UX では、1 つのマシンで複数のデータベース・サーバが起動している場合に、TCP/IP の ServerPort プロトコル・オプションは不要になりました。Mac OS X では、サーバが同じコンピュータですでに実行している場合にネットワーク・サーバを起動するには、依然として TCP/IP の ServerPort オプションを指定する必要があります。ServerPort プロトコル・オプション [PORT]を参照してください。
SOAP CONCRETE 応答の名前が ASADataSet から SimpleDataset に変更 CONCRETE 応答の名前が ASADataSet から SimpleDataset に変更されました。CREATE SERVICE 文を参照してください。
データベース・アンロード・ウィザードの動作の変更 データベースをバージョン 10 以前のデータベース・バージョンにアンロードできなくなりました。バージョン 9.0.2 以前のデータベースをバージョン 10 のデータベースにアンロードすると、再構築が完了してもデータベースに自動的に接続できません。
データベース抽出ウィザードの動作の変更 バージョン 9.0.2 以前のデータベースを抽出できません。バージョン 10 のデータベースから抽出する必要があります。
Solaris でサポート対象外の -ui と -ux サーバ・オプション Solaris で -ui と -ux サーバ・オプションはサポートされなくなりました。Linux では引き続き使用できます。
数値データ型の変換 DOUBLE 型から NUMERIC に変換する場合に、元の DOUBLE 値の近似精度が最も高いアルゴリズムが使用されるようになりました。これらの変更により、有効桁数が 15 桁以下の DOUBLE 値は、正確に NUMERIC に変換されます。場合によっては、SQL Anywhere の以前のバージョンとは異なる結果になることがあります。数値セット間の変換を参照してください。
sa_validate システム・プロシージャの変更 sa_validate システム・プロシージャのデータ、インデックス、フルの各オプションは必要なくなり、使用できなくなる予定です。式やチェックサムの検証を要求しないかぎり、以前のデータ、インデックス、フルのオプションを使用して実行されていた検査は、デフォルトで実行されます。sa_validate システム・プロシージャを参照してください。
a_validate_type 列挙体の変更 a_validate_type 列挙体の VALIDATE_DATA、VALIDATE_INDEX、VALIDATE_FULL の各パラメータは必要なくなり、使用できなくなる予定です。VALIDATE_NORMAL が指定されると、これらのオプションで実行された検証は、デフォルトで実行されます。a_validate_type 列挙を参照してください。
SQLPATH 環境変数の構文の変更 UNIX での SQLPATH 環境変数の構文が変更されました。以前のバージョンでは、すべてのオペレーティング・システムで、各パス要素をセミコロン (;) で区切っていました。SQL Anywhere 10 では、UNIX プラットフォームの場合はパス要素をコロン (:) で区切り、その他のプラットフォームの場合はセミコロンで区切ります。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |