このページは機械翻訳されています。英語の原文をお読みください。 English

IBSurgeon ライブラリ

HQbird 2024R2 アップデート10 詳細な新機能情報

HQbird 2024R2 Update 10 の新機能

マテリアライズド・ビュー(5.0の新機能)

HQbird は、マテリアライズド・ビュー(Materialized Views)の完全なサポートを新たに含みます。これは、ビューの定義と通常のテーブルの物理ストレージを組み合わせた新しいデータベースオブジェクトタイプです。

概要

マテリアライズド・ビュー(MV)は標準のSQLクエリを使用して定義され、エンジンはそのクエリを使用して基盤となるMVテーブルにデータ行を投入します。通常のビューとは異なり、MVデータはディスクに永続化され、インデックスを作成できます。DMLステートメント(INSERT、UPDATE、DELETE)はMVに対して直接許可されません。データは新しいREFRESHコマンドを使用して更新する必要があります。

マテリアライズド・ビューの作成と管理

  • CREATE [OR ALTER] MATERIALIZED VIEW - オプションの初期データロード(WITH DATA / WITH NO DATA)付きでMVを作成または置換します。
  • ALTER MATERIALIZED VIEW - MV定義を変更します。既存のすべてのインデックスは自動的に削除されます。
  • RECREATE MATERIALIZED VIEW - 同じ名前の既存のビュー(通常またはマテリアライズド)を削除し、新しいMVを作成します。
  • DROP VIEW - マテリアライズド・ビューの削除に使用します(個別のDROP MATERIALIZED VIEWコマンドはありません)。
  • 任意の種類のインデックスをMVに作成できます。制約とトリガーはサポートされていません。

ビュータイプ間の変換

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - MVを通常のビューに変換します。すべてのインデックスとデータは削除されます。
  • ALTER VIEW ... TO MATERIALIZED - 通常のビューをマテリアライズド・ビューに変換します。依存オブジェクトは影響を受けません。

マテリアライズド・ビューデータの更新

新しいREFRESH MATERIALIZED VIEWステートメントはMVコンテンツを更新します。これはDDLコマンドであり、実行は現在のトランザクションがコミットされるまで延期されます。4つのモードが利用可能です:

  • フルリロード(排他モード) - REFRESH MATERIALIZED VIEW

    • インデックスを非アクティブ化し、既存のすべてのデータを削除し、MVクエリから再ロードし、インデックスを再アクティブ化します。
    • 多くの行が変更された場合に最速のオプションです。
    • MVテーブルに対する排他ロックが必要です。
    • データロードエラー時:新しくロードされたデータは削除され、インデックスは空の状態で再アクティブ化されます。
    • インデックスアクティブ化エラー時:影響を受けたインデックスは非アクティブのままになります。データと他のインデックスは影響を受けません。インデックス構築エラーは警告として報告されます。
  • 同時更新 - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • 排他ロックは不要です。更新中もMVに対する同時クエリが許可されます。
    • 2つの順序付けられたカーソルを使用したマージアルゴリズムを使用します。1つは現在のMVデータ用、もう1つはMVクエリ結果用です。
    • 新しい行を挿入し、変更された行を更新し、削除された行を削除します。すべてトランザクション制御下で行われます。
    • MVに一意のインデックスが必要です。
    • 同時アクセスが必要な場合、または前回の更新以降に変更された行が少ない場合に推奨されます。
    • 注:MVクエリにORDER BYが含まれている場合、同時更新後に行の順序が保持されない可能性があります。
  • すべてのデータを削除 - REFRESH MATERIALIZED VIEW DROP DATA

    • すべてのMVデータとインデックスコンテンツを削除します。ディスク領域を解放するのに役立ちます。排他ロックが必要です。
  • カスケード更新 - 上記のいずれかの形式にCASCADEを追加します

    • 指定されたMVが依存するすべてのMVを、正しい依存順序で更新します。
    • 各MVは1回だけ処理されます。
    • CONCURRENTLY CASCADEでは、影響を受けるすべてのMVに一意のインデックスが必要です。
    • DROP DATA CASCADEは、影響を受けるすべてのMVのデータを削除します。
    • 影響を受けるMV名と更新順序は、コミット前にステータスベクタで警告として報告されます。

バックアップとリストア(gbak)

  • バックアップ:MVデータは通常のビューと同様にバックアップファイルに保存されません。特別な処理は不要です。
  • リストア:すべてのMVはリストアプロセスの最後に、正しい依存順序で自動的に更新されます。
  • 新しいgbakスイッチ-NO_MATVIEWS-NO_Mに省略可能)- リストア中のMV更新をスキップします。
  • 対応するServices APIオプション:isc_spb_res_no_matviews
  • 重要: MVを含むバックアップは、MVをサポートしていないFirebirdバージョンにはリストアできません。古いバージョンに移行する場合は、バックアップ前にALTER MATERIALIZED VIEW ... TO NOT MATERIALIZEDを使用してください。

既知の制限事項 / 計画中の作業

  • レプリケーションサポート - まだ実装されていません。
  • DDLトリガー - まだ実装されていません。
  • アクセス権チェック - まだ実装されていません。
  • エラーメッセージ - レビュー中です。

バックアップとリカバリ

  • 検証バックアップタスク:圧縮前のローテーション削除を追加しました。ディスク容量計算係数は設定可能になりました。
  • nBackupタスク:スキップロジックを修正しました。ジャーナル名変更アルゴリズムを、部分的な名前変更を防ぐためのリトライ付きアトミック名変更に変更しました。
  • BRZタスクのバックアップディレクトリとファイル名テンプレートが設定可能になりました:
    • backup-directory - データベースとジョブごとにターゲットディレクトリを指定できます。
    • backup-name - ファイル名テンプレートを定義できます。例:brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk
    • 入力バリデータを追加:ディレクトリ名の有効性をチェックし、存在しない場合はディレクトリを作成します。

クラウドバックアップ / ファイル転送

  • cloudbackup(filetransfer)タスクでSocketプロトコルによるファイルアップロードのサポートを追加しました。
  • セグメントごとの選択的ファイル圧縮オプションを削除しました。対応するタスクのファイル圧縮は常に有効になりました。

トレース

  • トレース設定に追加フィールドとしてconnection_idを追加しました。
  • トレースレポート処理:プロセス名による大文字小文字を区別しないグループ化とフィルタリングを追加しました。

VSSライター

  • 追加の診断ロギングを追加しました。データベースサイズ、日時、gstat -h出力を含むデータベース状態情報が記録されるようになりました。

Webインターフェース

  • ローカライゼーションの改善:Webコンソール全体で翻訳を修正し、ローカライゼーションアルゴリズムを調整しました。
  • Webダイアログにラベルテキスト付きの視覚的な区切り要素を追加しました。フォーム要素の論理的なグループ化が可能になります。
  • クライアント側リソース(Webページ、JS、CSS)のキャッシュバスティング戦略を変更し、更新後にブラウザが古いファイルを使用しないようにしました。

設定

  • サーバー認証フィールド名を更新しました(sysdba/ownerserviceAPI)。
  • サーバー側(Java)の言語/ロケール設定用の予約済み設定パラメータを追加しました。
  • ファイル転送タスクの新しいデフォルト設定に一致するようにデフォルト設定ファイルを修正しました:
    • ポートを8721から8722に変更しました。
    • デフォルトユーザーをadmin2/admin3からsocketuserに変更しました。
    • パスワード強度設定をすべての設定で強力なパスワードに統一しました。
  • KAライセンスファイルを登録する際、ホストフィールドにHTTP/HTTPSプロトコルプレフィックスを指定する必要がなくなりました。

バグ修正

  • データベースのすべてのタスクが一時的に無効になっているときに発生する誤った重大アラートを修正しました。
  • 設定されたSYSDBAユーザーがトレースセッションの一覧表示権限を持たないシステムで、アクティブなトレースセッションのリストを取得する際のエラーを修正しました。
  • UTF-8エンコードされたパスを正しく処理しなかったサードパーティの復号化コンポーネントのバグを修正しました。注:mon/traceサービスが更新および再構築されるまで、ファイルまたはデータベースパス内のUTF-8文字がmon/trace出力でエラーを引き起こす可能性があります。
  • 空の値を持つキーを誤って保持していたレプリケーション設定ハンドラの問題を修正しました。
  • Firebird 4以降のjournal_archive_commandの処理を修正しました(firebird/firebird PR #8381の上流修正に合わせました)。
  • dg2fbcc.jar設定ジェネレータプラグインとその呼び出しコードのエラーを修正しました。

インストーラとビルド

  • Windowsインストーラを改訂されたスクリプトとロジックで更新しました。
  • クライアントライブラリのバイナリを更新しました。
  • OpenSSLを新しいバージョンに更新しました。
  • 製品固有のビルドバリアント用の条件付きコードブランチを追加しました。
  • インストーラのビルドプロセスにファイル署名を追加しました。

サーバー側ローカライゼーション基盤

サーバー側(Java)テキストメッセージのローカライゼーションメカニズムが実装されました。ロケールファイルは準備されていますが、翻訳はまだ入力されておらず、このメカニズムは本番環境ではまだ有効化されていません。この基盤は、将来のサーバーメッセージのローカライゼーションを目的としています。