はじめに

みなさん、こんにちは!
私はOracle Exadata関連の記事を執筆しています。

Oracle CloudWorld 2023 で
Oracle23c(以降23c)のリリース発表がありましたので紹介していたいと思います。

これはみなさん気になる最新情報ですね!

Oracle23cとは

今までは、無料提供であった Oracle Database 23c Free – Developer Release の発表のみでしたが、ようやく正式版リリースの発表となりました。

リリーススケジュールのドキュメントによると、現時点で提供されているプラットフォームとしては、OCI Base Database Serviceのみですが、2024年上半期に 64ビット版 Linux と Exadata のリリースが予定されており、以降その他のプラットフォームでリリースされる予定です。

Oracle23cは Long Termリリースなので、11gや19cと同様長期間のサポートが保障されています。
Extended Supportを使用した場合ですが、19cが2027年までのサポートに対し
23cは2032年までサポートされます

Market Driven Support が適用される場合は、さらに数年のサポート延長が可能になります。

注)Doc ID 742060.1より抜粋

これから新規およびシステム更改を検討されているお客様としては、19cよりは23cを選択される方がより長く同じシステムを使い続けることができますので、メリットがあるのではないでしょうか。

リリーススケジュールやサポート期間についてのドキュメントについては、[Release Schedule of Current Database Releases (Doc ID 742060.1)]をご参照ください!

Oracle23cの機能について

23c機能のハイライトについては、こちらのサイトに纏められていますのでご参照ください。

  • Blockchain tables
  • Boolean data type
  • Direct Joins for UPDATE and DELETE Statements
  • DB_DEVELOPER_ROLE
  • GROUP BY column alias
  • IF [NOT] EXISTS
  • JavaScript stored procedures
  • JSON Relational Duality views
  • JSON Schema
  • Kafka APIs
  • Lock-free column value reservations
  • Operational property graphs
  • Schema privileges
  • SELECT without FROM clause
  • SQL Firewall
  • SQL Macros
  • Table Value Constructor
  • Usage Annotations

23cでは300以上の新機能が追加されているそうで、上記機能以外でも魅力的な機能が複数ありましたので、ピックアップしてみました。

Up to 4096 Columns per Table

データベース テーブルは最大 4096 列をサポートするようになりました。
この機能により、ML や IoT など、多数の属性を必要とするアプリケーションの開発が簡素化されます。

Improved TNS Error Messages

この機能は、より多くの情報を提供することにより、一般的な TNS エラー メッセージを強化します。
エラーをより適切に説明すると、診断可能性が向上します。

SELECT Without FROM Clause

FROM 句を使用せずに SELECT 式のみのクエリを実行できるようになりました。
この新機能により、SQL コードの移植性と開発者にとっての使いやすさが向上します。

Oracle RAC on Kubernetes

Oracle Real Application Clusters データベースを Kubernetes クラスタに簡単にデプロイします。

Efficient Table DDL Change Notification

テーブルで DDL が発生したときにアプリケーションに通知できるようになりました。

SQL*Plus OERR Command and Improved HELP Syntax

SQL*Plus の新しい OERR コマンドを使用すると、SQL*Plus 内でユーザーが指定したエラー番号に関する Oracle エラー メッセージの原因とアクションのテキストを確認できます。
既存の HELP コマンドも同じテキストを表示するように拡張されました。
この機能により、開発者はエラー メッセージに関する詳細情報をすぐに取得できます。

SQL*Plus SET ERRORDETAILS Command

新しい SET ERRORDETAILS コマンドを使用すると、障害シナリオで Oracle エラーが生成されたときに追加情報を表示するかどうかをユーザーが決定できます。
表示できる追加情報は、エラーのヘルプ URL とメッセージの原因とアクションのテキストです。

Hybrid Partitioned Tables with Interval and Auto-List Partitioning

間隔を使用した単一レベルのパーティション化と自動リスト パーティション化を使用して、ハイブリッド パーティション テーブルを作成できます。

Data Quality Operators in Oracle Database

このリリースでは、近似または「あいまい」文字列一致に基づく次の 2 つの新しい文字列一致演算子が導入されています。
PHONIC_ENCODE:発音に基づいて単語またはフレーズを言語固有のコードに変換します。
FUZZY_MATCH:言語に依存せず、2 つの文字列間のテキストの類似性を評価します。
新しいフォニック エンコーディングとファジー マッチング手法により、より高度なマッチング アルゴリズムを外部アプリケーションだけでなくデータベース内のデータに対して直接実行できるようになり、データの重複排除、リンク、拡張などでマッチングのパフォーマンスと効率が向上します。

Concurrent Materialized View Refresh for on-commit

マテリアライズド・ビューのリフレッシュは同時リフレッシュを提供し、シリアル化を必要とせずに、複数のセッションが同じオンコミット・マテリアライズド・ビューを同時にリフレッシュできます。
同時リフレッシュにより、アプリケーションに対するマテリアライズド・ビューの適用範囲が広がり、アプリケーション開発が簡素化されます。
これにより、より高速な更新とより最新のマテリアライズド ビューが提供されます。

Enhanced Automatic Indexing

自動インデックス作成では、自動インデックス作成を選択するときに、データベース内の DML 操作の影響をより適切に評価できます。
ワークロードに対するインデックスの全体的な利点を判断することで、パフォーマンスが向上します。

Enhanced Automatic SQL Plan Management

自動 SQL プラン管理が強化され、SQL パフォーマンスの低下をより迅速に検出して修復できるようになりました。
SQL プランの変更は解析時に検出され、最初の実行後に SQL パフォーマンスが以前の SQL 実行プランのパフォーマンスと比較されます。 パフォーマンスの低下が検出された場合は、それに応じてプランが修復されます。

Increased Maximum Size of Inline LOBs of 8000 Bytes

インライン LOB の最大サイズが 8000 バイトに増加し、より大きな LOB 値を行内に格納できるようになりました。 以前は、最大サイズは 4000 でした。

Automatic In-Memory Enhancements for Improving Column Store Performance

自動インメモリ (AIM) が強化され、強化されたワークロード分析アルゴリズムに基づいてデータベース インメモリ パフォーマンス機能の作成と削除が自動的に可能になりました。
自動インメモリ (AIM) が強化され、パフォーマンスを向上させるデータベース インメモリ機能を特定し、有効または無効にすることができます。
どちらの機能が最もメリットをもたらすかに応じて、機能を選択的にまたはグローバルに有効にします。
これにより、アプリケーションのパフォーマンスが向上し、手動介入を必要とせずにインメモリ列ストアの領域も節約されます。

Hybrid Read-Only Mode for Pluggable Databases

ハイブリッド読取り専用モードを使用すると、ローカル・ユーザー(より高い権限を持つユーザーを含む)がPDBの継続的なメンテナンス操作を妨げるリスクを負うことなく、オープンPDBのセーフ・モードでアプリケーションにパッチを適用し、メンテナンスできます。

Optimized Read-Write Operations for Database Processes

db_access を有効にすると、メモリ消費量と CPU 使用率の両方が減少します。
OFS によって管理されるファイルに対してデータベース プロセスによる読み取りおよび書き込み操作を実行すると、スループットが向上します。

Read-Only Tablespace on Object Storage

読み取り専用テーブルスペースはオブジェクトストレージとの間で透過的に移動でき、データベースの一部をクラウド内の低コストストレージに保存します。
表領域をオブジェクト・ストレージに移動できるようにすると、ビジネス価値やアクセス頻度に基づいて最もコスト効率の高いストレージ層にデータを保管できます。

Unified Memory

単一のパラメータを使用してデータベースのメモリー割当てを制御し、メモリー構成を変更するためにシステムを再起動する必要性を軽減または排除します。
ユニファイド メモリはメモリ管理を簡素化し、中断を最小限に抑えながら高度に統合された環境で複数のワークロードを実行します。

Flashback Time Travel Enhancements

Flashback Time Travel では、テーブルに対するトランザクションの変更を自動的に追跡し、アーカイブできます。
表の行に加えられた変更のアーカイブを作成し、その変更を履歴表に保管します。
表とそのスキーマに対するトランザクション変更の履歴を保持することにより、表に対してフラッシュバック問合せ(AS OFおよびVERSIONS)などの操作を実行して、トランザクション時間中に行われた変更の履歴を表示できます。

Transport Layer Security (TLS) 1.3 Now Supported in Oracle Database

TLS 1.3 は、Oracle データベースとの間のネットワーク接続を保護する最新かつ最も安全な TLS プロトコルです。

New sqlnet.ora Parameter to Prevent the Use of Deprecated Cipher Suites

SSL_ENABLE_WEAK_CIPHERS sqlnet.ora パラメータを FALSE に設定することで、非推奨の暗号スイートの使用をブロックできます。
古い、安全性の低い暗号スイートを使用する機能を削除することで、データベース間で移動中のデータの保護が強化されます。

Changes for TDE Encryption Algorithms and Modes

TDE 列暗号化と TDE テーブルスペース暗号化の両方のデフォルトの暗号化アルゴリズムは AES256 になりました。
TDE 列暗号化の以前のデフォルトは AES192 で、TDE テーブルスペース暗号化の場合、デフォルトは AES128 です。

Audit Object Actions at the Column Level for Tables and Views

統合監査ポリシーを作成して、テーブルおよびビューの個々の列を監査できます。

Microsoft Azure Active Directory Integration with Additional Oracle Database Environments

Microsoft Azure Active Directory (Azure AD) シングル サインオン OAuth2 アクセス トークンを使用して、Oracle データベースにログインできます。

Increased Oracle Database Password Length

Oracle Databaseでは、最大1024バイトの長さのパスワードがサポートされるようになりました。
以前のリリースでは、Oracle Databaseのパスワード長とセキュア・ロールのパスワード長は最大30バイトでした。

IP Rate Limit in CMAN

Oracle Connection Manager (CMAN) を使用すると、指定した時間単位内に IP アドレスから許可される新しい接続の数を制限できます。
この IP レート制限機能により、潜在的なサービス拒否 (DoS) 攻撃からデータベースを保護できます。

Automatic Transaction Rollback

この機能により、アプリケーションはトランザクションに優先順位を割り当て、管理者は優先順位ごとにタイムアウトを設定できます。
設定されたタイムアウトを超えて優先度の高いトランザクションがブロックされた場合、データベースは優先度の低いトランザクションを自動的にロールバックし、保持されている行ロックを解放して、優先度の高いトランザクションの続行を許可します。

Managing Flashback Database Logs Outside the Fast Recovery Area

高速リカバリ領域外でフラッシュバック・データベース・ログを管理すると、スペース管理に関連する運用コストが削減され、従来のストレージ上のフラッシュバック・ログによって通常影響を受けるワークロードに対して最高のパフォーマンスが保証されます。

Blockchain Table Row Versions

この機能を使用すると、アプリケーションで改ざん防止ブロックチェーン テーブルを使用するときに、行のバージョン管理を保証できます。
また、ブロックチェーン テーブルの上部にあるビュー _last$ を使用すると、行の最新バージョンのみを確認できます。

Lock-Free Reservations

ロックフリー予約により、頻繁に更新される行の更新がブロックされることなく、同時トランザクションを続行できるようになります。
ロックフリー予約は、行をロックするのではなく行上で保持され、ロックフリー予約は更新が成功するかどうかを検証し、トランザクションのコミット時まで更新を延期します。

Wide Tables

データベース テーブルまたはビューで許可される最大列数が 4096 に増加しました。
機械学習やストリーミング IoT アプリケーション ワークロードなどの一部のアプリケーションでは、1000 列を超える非正規化テーブルの使用が必要になる場合があります。

Improve Performance and Disk Utilization for Hybrid Columnar Compression

ハイブリッド列圧縮 (HCC) の圧縮アルゴリズムの強化には、圧縮速度と解凍速度の高速化、および新しく作成された HCC 圧縮テーブルまたは再構築された既存の HCC 圧縮テーブルの圧縮率の向上が含まれます。
正確な利点は、データと選択した圧縮レベルによって異なります。
この機能は、データベース ストレージの使用率を削減しながら、アプリケーションのワークロード パフォーマンスを向上させます。

ACFS Auto Resize Variable Threshold

以前のバージョンでは、しきい値は 10% に固定されていましたが、ACFS 自動サイズ変更により、ファイル システムの自動サイズ変更のしきい値パーセンテージを設定できるようになりました。

CEIL and FLOOR for DATE, TIMESTAMP, and INTERVAL Data Types

DATE、TIMESTAMP、INTERVAL 値を CEIL 関数と FLOOR 関数に渡すことができるようになりました。
INTERVAL 値を ROUND 関数および TRUNC 関数に渡すこともできます。
これらの関数を使用すると、指定した単位の日付と時刻の値の上限と下限を簡単に見つけることができます。

SQL*Loader Supports SODA (Simple Oracle Document Access)

制御ファイル・モードとエクスプレス・モードの両方でSQL*Loaderユーティリティを使用すると、外部ドキュメントをOracle DatabaseアプリケーションのSODAコレクションに挿入、追加および置換できます。
この機能によりスキーマのないJSONまたはXMLベースのアプリケーション・データをOracle Databaseに簡単かつ迅速にロードできるようになります。

Advanced LOW IOT Compression

以前のリリースでは、IOT は Oracle のプレフィックス キー圧縮のみをサポートしていましたが、これには追加の分析が必要で、マイナス圧縮の可能性がありました (圧縮のオーバーヘッドが圧縮の利点を上回った場合)。
高度な低 IOT 圧縮により、Oracle データベースの全体的なストレージを削減できます。

Automatic Storage Compression

自動ストレージ圧縮により、Oracle Databaseは最初にデータを非圧縮形式に直接ロードし、その後バックグラウンドで行を徐々にハイブリッド列圧縮形式に移動できるようになります。
自動ストレージ圧縮は、スペースの節約や高速な分析パフォーマンスなどのハイブリッド列圧縮の利点を維持しながら、直接ロードのパフォーマンスを向上させます。

Pluggable Database Support in Oracle Data Guard Environments

Data Guard 環境に Database Configuration Assistant (DBCA) を使用したプラガブル データベース構成が追加されました。
Data Guard環境でプラガブル・データベース(PDB)を構成するには、コマンドライン・ベースのサイレント・モード・オプションを使用できます。

Add Verified SQL Plan Baseline

SQL プラン管理 API (DBMS_SPM) には、ADD_VERIFIED_SQL_PLAN_BASELINE という新しいプロシージャが含まれています。
カーソル・キャッシュ、AWR、および自動SQLチューニング・セットを検索して、指定されたSQL文に最適な実行プランを確立します。
最適な計画のために承認された SQL 計画ベースラインを作成します。
この機能により、パフォーマンス管理が向上します。

CMAN Diagnostics and Logging Enhancements

コマンドライン・インタフェースを使用して、Oracle Connection Manager (CMAN) リスナーが実行するすべてのデータベース・サービス登録操作の統計を監視できるようになりました。
CMAN およびリスナー ログ ファイル内のサービス登録イベントに関する追加の診断詳細を表示することもできます。

In-Memory Advisor

In-Memory AdvisorはOracle Databaseの一部となり、(1) Database In-Memoryの候補として適切ではないデータベースを特定する適格性テストと、(2) データベース・インメモリの候補となるワークロードをより適切に特定するための強化された分析機能を備えたアドバイザの2つのコンポーネントで構成されています。
In-Memory Advisor は、別個のスタンドアロン ユーティリティをインストールする代わりに、データベースに組み込まれるようになりました。
適格性テストにより、Database In-Memory のメリットが得られないワークロードを迅速に排除し、時間と労力を節約できます。

AutoUpgrade Release Update (RU) Upgrades

AutoUpgradeを使用したOracle Databaseのアウトオブプレース・パッチの場合、AutoUpgradeは、パッチを適用するソース・データベースを新しいOracle Database Oracleホームに移動し、選択したリリース・アップデートを使用してそのターゲットOracleホームのデータベース・バイナリにパッチを適用します。
このオプションを使用すると、計画されたアップグレードの一部またはパッチ計画の一部として、データベースを新しいOracleホームに移動するときにいつでもAutoUpgradeを使用できます。

AutoUpgrade Unplug-Plugin Upgrades to Different Systems

あるシステムからPDBを切断し、別のシステムに接続してアップグレードできるようになりました。
この機能を使用すると、クラウドへの移行を含む 1 回の操作で PDB の移行とアップグレードができるようになります。

その他含め、各機能の詳細についてはこちらのサイトをご確認下さい!

23c以外で最近気になったこと

Oracle CloudWorld 2023にて 23cリリースについての発表がありましたが、同時期に開催されている Intel Innovation 2023において
1cpuあたり288コアのXeonプロセッサの発表がありました。
https://www.publickey1.jp/blog/23/288xeonsierra_forest2024.html

普段、私はExadataに関する記事を執筆していることが多く、ExadataX10Mの記事では 1cpuあたり92コアのAMDプロセッサを採用していることを紹介したのですが
当時でさえ、ExadataX9Mモデルの約3倍の搭載数だったことに大変驚きましたが
ExadataX10Mのさらに3倍の搭載数になります。

2024年にリリースされるとのことで、リリース後すぐにサーバに搭載されるかは疑問ですが、Exadataがおよそ2年に1度新モデルのリリースが行われていることが多いので、ExadataX10Mの次世代モデルがリリースされるのは 2025年頃と予想され、その頃には 288コアのXeonプロセッサ相当を搭載しているのではないかと思っています。

クラウド環境ではあまり意識する必要は無さそうですが、このような高スペックサーバ + 2032年までサポート可能な23cの組み合わせによる新規構築やシステム移行する事で、
サーバ台数の削減およびサーバ維持にかかる電力消費の抑制マルチコアCPUライセンスや頻繁なシステム移行にかかるコスト削減が得られるのではないでしょうか。

まとめ

現時点で、OCI Base Database Serviceでのみ23cがリリースされている状況ですので、各プラットフォームで使用するにはもう少し時間がかかりそうですので、検証等行う場合は、23c free-developer-releaseをご使用頂けばと思います。

23c含むOracle製品に関して何かご不明なことや、ご興味を持たれたことがございましたら、どんな些細な事でも構いませんので、お気軽に当社までお問合せ下さい。