パフォーマンスを向上させる並列処理のサポート データベース・サーバで、単一のクエリを処理するのに複数のプロセッサを使用できるようになりました。クエリ内並列処理は、同時実行されるクエリ数が使用可能なプロセッサ数よりも少ない場合に便利です。クエリ実行時の並列処理を参照してください。
データベースのミラーリングのサポート SQL Anywhere で、データベースの可用性を高めるためのメカニズムである、データベースのミラーリングがサポートされるようになりました。データベースのミラーリングでは、別々のコンピュータで実行され、同期モードか非同期モードで相互通信する 2 ~ 3 のデータベース・サーバを使用します。データベース・ミラーリングの概要を参照してください。
データベースのミラーリングをサポートするために、次の機能が追加されています。
ServerName プロパティ
AlternateServerName プロパティ
RetryConnectionTimeout プロパティ
ALTER DATABASE dbname FORCE START。ALTER DATABASE 文を参照してください。
スナップショット・アイソレーションのサポート スナップショット・アイソレーションを使用すると、ユーザがデータを変更する間、データベースでは元のデータのコピーが保持されるので、他のユーザも元のデータを読むことができます。スナップショット・アイソレーションはユーザに対して完全に透過的であり、デッドロックやロック競合の発生を抑えるのに役立ちます。スナップショット・アイソレーションを参照してください。
スナップショット・アイソレーションをサポートするために、次の機能が追加または強化されました。
アプリケーション・プロファイリングと診断トレーシングのサポート ストアド・プロシージャ・プロファイリングや要求ロギングなどの既存のアプリケーション・プロファイリング機能は、単一の対話型インタフェースである Sybase Central 用 SQL Anywhere プラグインに統合されました。Sybase Central からアプリケーションをプロファイリングするときは、データベースのパフォーマンスを向上させるためのアドバイスが提供されます。
Sybase Central でのアプリケーション・プロファイリングの詳細については、アプリケーション・プロファイリングを参照してください。
マテリアライズド・ビューのサポート データベースのサイズが大きく、頻繁にクエリが行われるために大量のデータで繰り返し集約やジョイン操作が発生するような環境において、パフォーマンスを向上させるために、SQL Anywhere ではマテリアライズド・ビューがサポートされました。マテリアライズド・ビューの操作を参照してください。
データベース・サーバの機能が強化され、クエリの一部に応答するために使用できるマテリアライズド・ビューを自動的に決定できるようになりました。この決定はコストを基に行われ、クエリが直接参照するベース・テーブルを使用する必要はありません。マテリアライズド・ビューによるパフォーマンスの向上を参照してください。
マテリアライズド・ビューの情報を格納するために、2 つの新しいシステム・テーブル ISYSMVOPTION と ISYSMVOPTIONNAME が追加されました。SYSMVOPTION システム・ビューとSYSMVOPTIONNAME システム・ビューを参照してください。
NCHAR データのサポート SQL Anywhere で NCHAR データ型がサポートされるようになりました。NCHAR データ型は、Unicode 文字データを格納するのに使用されます。NCHAR データ型を参照してください。
NCHAR をサポートするために、次の新しい関数が追加されました。
NCHAR データ型をサポートするために、次の関数 SOFTKEY と COMPARE に新しいパラメータが追加されました。
Unicode 照合アルゴリズム (UCA) を使用するときに、マルチバイトの文字セットを正しくソートできるようになりました。
NCHAR データ型をサポートするために、初期化ユーティリティ (dbinit) と Unload (dbunload) ユーティリティにも新しいオプションが追加されました。初期化ユーティリティ (dbinit)とアンロード・ユーティリティ (dbunload)を参照してください。Unicode のサポートのため、International Components for Unicode (ICU) が使用されるようになりました。国際言語と文字セットを参照してください。
ICU の使用と NCHAR データの処理をサポートするために、次のプロパティが変更されました。
新しいデータベースと接続の拡張プロパティ NcharCharSet が追加されました。このプロパティは、データベースまたは接続で使用されている NCHAR 文字セットを返します。
新しいデータベース・プロパティ AccentSensitive が追加されました。このプロパティは、アクセントを区別する機能のステータスを返します。
CharSet データベースと接続のプロパティが、拡張プロパティになりました。
データベース・プロパティと接続プロパティを参照してください。
内部パフォーマンスの強化 データベース・サーバのパフォーマンスを向上させるために、仮想マシン・テクノロジを使用して、SQL 式の表現と評価を再構成するようになりました。これにより、スループットが大幅に向上します。
ビューの依存性のサポート ビューの依存性の情報がカタログに格納されるようになりました。カタログは特に、データベースの各ビューが依存するビュー、テーブル、カラムを追跡します。ビューが依存するオブジェクトを変更すると、ビュー定義が不適切な結果を返す状態のままにならないように、データベース・サーバは自動的に追加処理を実行します。ビューの依存性を参照してください。
システム・オブジェクトとそれらの依存性の情報を格納するために、2 つの新しいシステム・テーブル ISYSDEPENDENCY と ISYSOBJECT が追加されました。SYSDEPENDENCY システム・ビューとSYSOBJECT システム・ビューを参照してください。
チェックポイント・アルゴリズムの向上 データベース・サーバは、チェックポイントを開始し、チェックポイントの発生中にその他の操作を実行できるようになりました。以前は、チェックポイントが発生すると、すべてのアクティビティが停止していました。チェックポイントがすでに進行中の場合、新しくチェックポイントを開始する ALTER TABLE や CREATE INDEX などの操作は、現在のチェックポイントが完了するまで待機する必要があります。チェックポイント・ログの概要を参照してください。
ロックのクラス SQL Anywhere で、スキーマ・ロック、テーブル・ロック、ロー・ロック、位置ロックの 4 つの固有のクラスが使用できるようになりました。ロックの問題をより厳密に分析できるように、各トランザクションが保持するロックの種類を明確に記述するように sa_locks システム・プロシージャが変更されました。ロックの仕組みとsa_locks システム・プロシージャを参照してください。
意図的ロックのサポート 新しい種類のロックである意図的ロックが、テーブル・ロックとロー・ロックに導入されました。意図的ロックは、アプリケーションがテーブルまたはそのテーブル内のロー・セットの更新意図を通知するために使用されます。アプリケーションで SELECT FOR UPDATE または FETCH FOR UPDATE 文 (または各種プログラミング・インタフェースで同様の構成) を使用するときに、意図的ロックが取得されるようになりました。意図的ロックは、その他の意図的ロックや書き込みロックをブロックしますが、読み込みロックはブロックしません。このため、明示的な同時制御メカニズムとしてロックを使用するアプリケーションで、高度な同時実行性が実現されます。カーソルの使い方と意図的ロックを参照してください。
一部の状況におけるキー範囲ロックの省略 インデックス管理アルゴリズムが変更され、データベース・サーバがキーの範囲ではなく個別のインデックス・エントリに、書き込みロックを設定できるようになりました。これにより、同時実行性が向上し、さまざまな環境で同時に発生する INSERT 操作による不要なブロックを避けることができます。ロックの仕組みを参照してください。
インデックス処理の強化 インデックス処理には、次のような強化が行われています。
新しいインデックスの実装 SQL Anywhere の以前のリリースには、2 種類のインデックス処理が実装されていました。これらは宣言されたインデックス・カラムのサイズに基づいて自動的に選択されていました。SQL Anywhere 10 で、圧縮 B ツリーインデックスの新しい実装が全体に使用されるようになり、以前の B ツリー・インデックス処理テクノロジが廃止されました。新しいインデックスには、ローの値とは全く別の、インデックス・エントリのインデックス・キー値が圧縮形式で格納されます。スナップショット・アイソレーションをサポートするにはこの機能が必要です。
スナップショット・アイソレーションのサポート 以前の SQL Anywhere リリースでは、UPDATE または DELETE 文によりインデックス・エントリがすぐに削除されていました。スナップショット・アイソレーションをサポートするために、異なるインデックス・キー値を持つ同じ論理ローを指すような複数のインデックス・エントリが存在する可能性があります。これらの複数のインデックス・エントリは、データベース・サーバによって管理されるため、どの接続でも、任意のローに対してエントリの 1 つしか確認できません。サーバ内のデーモンは、定期的にこれらの余分なインデックス・エントリが (トランザクション COMMIT または ROLLBACK で) 不要になった時点で物理的に削除します。コミットされていない DELETE ではインデックス・エントリを保持することにより、SQL Anywhere の同時実行性制御メカニズムのセマンティック一貫性も向上します。スナップショット・アイソレーションを参照してください。
BLOB 記憶域制御とパフォーマンスの向上 テーブルのローに (インラインで) 格納される BLOB 値の量を制御できるようになりました。また、BLOB 値をインデックス処理するかどうかも制御できます。これらの強化により BLOB の検索とアクセスが向上します。これらの強化機能を使用するには、CREATE TABLE と ALTER TABLE 文の 3 つの新しい句 INLINE、PREFIX、[NO] INDEX を使用します。BLOB 値は同じテーブルの行同士または行内で共有できるようになりました。重複した BLOB 値を格納する必要がなくなるため、記憶域の要件が抑えられます。BLOB の格納、CREATE TABLE 文、ALTER TABLE 文を参照してください。
カラム圧縮のサポート テーブルの個別カラムを圧縮できるようになりました。圧縮には deflate 圧縮アルゴリズムが使用されます。これは、COMPRESS 関数で使用される圧縮方式と同じであり、Windows の .zip ファイルで使用されるアルゴリズムでもあります。CREATE TABLE 文とALTER TABLE 文を参照してください。
テーブルの暗号化のサポート データをセキュリティ保護するためにデータベース全体を暗号化するのではなく、データベースの個別のテーブルを暗号化できるようになりました。テーブルの暗号化は、データベースを初期化するとき有効にする必要があります。テーブル暗号化を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |