Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 12 変更点とアップグレード » バージョン 10.0.0 の新機能 » SQL Anywhere » 新機能

 

主な機能

  • パフォーマンスを向上させる並列処理のサポート   データベースサーバーで、単一のクエリを処理するのに複数のプロセッサーを使用できるようになりました。クエリ内並列処理は、同時実行されるクエリ数が使用可能なプロセッサー数よりも少ない場合に便利です。高度:クエリ実行時の並列処理を参照してください。

  • データベースのミラーリングのサポート   SQL Anywhere で、データベースの可用性を高めるためのメカニズムである、データベースのミラーリングがサポートされるようになりました。データベースのミラーリングでは、別々のコンピューターで実行され、同期モードか非同期モードで相互通信する 2 ~ 3 のデータベースサーバーを使用します。データベースミラーリングを参照してください。

    データベースのミラーリングをサポートするために、次の機能が追加されています。

    データベースのミラーリングに加え、SQL Anywhere では、Veritas Cluster Server エージェントがデータベース用 (SADatabase エージェント) およびデータベースサーバー用 (SAServer エージェント) に提供されるようになりました。SQL Anywhere Veritas Cluster Server エージェントを参照してください。

  • スナップショットアイソレーションのサポート   スナップショットアイソレーションを使用すると、ユーザーがデータを変更する間、データベースでは元のデータのコピーが保持されるので、他のユーザーも元のデータを読むことができます。スナップショットアイソレーションはユーザーに対して完全に透過的であり、デッドロックやロック競合の発生を抑えるのに役立ちます。スナップショットアイソレーションを参照してください。

    スナップショットアイソレーションをサポートするために、次の機能が追加または強化されました。

  • アプリケーションプロファイリングと診断トレーシングのサポート   ストアドプロシージャープロファイリングや要求ロギングなどの既存のアプリケーションプロファイリング機能は、単一の対話型インターフェイスである Sybase Central 用 SQL Anywhere プラグインに統合されました。Sybase Central からアプリケーションをプロファイリングするときは、データベースのパフォーマンスを向上させるためのアドバイスが提供されます。

    Sybase Central でのアプリケーションプロファイリングの詳細については、アプリケーションプロファイリングを参照してください。

  • マテリアライズドビューのサポート   データベースのサイズが大きく、頻繁にクエリが行われるために大量のデータで繰り返し集約やジョイン操作が発生するような環境において、パフォーマンスを向上させるために、SQL Anywhere ではマテリアライズドビューがサポートされました。マテリアライズドビューを参照してください。

    データベースサーバーの機能が強化され、クエリの一部に応答するために使用できるマテリアライズドビューを自動的に決定できるようになりました。この決定はコストを基に行われ、クエリが直接参照するベーステーブルを使用する必要はありません。

    マテリアライズドビューの情報を格納するために、2 つの新しいシステムテーブル ISYSMVOPTION と ISYSMVOPTIONNAME が追加されました。

  • 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 が追加されました。

  • チェックポイントアルゴリズムの向上   データベースサーバーは、チェックポイントを開始し、チェックポイントの発生中にその他の操作を実行できるようになりました。以前は、チェックポイントが発生すると、すべてのアクティビティが停止していました。チェックポイントがすでに進行中の場合、新しくチェックポイントを開始する 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 文を参照してください。

  • テーブルの暗号化のサポート   データをセキュリティ保護するためにデータベース全体を暗号化するのではなく、データベースの個別のテーブルを暗号化できるようになりました。テーブルの暗号化は、データベースを初期化するとき有効にする必要があります。テーブル暗号化を参照してください。