「システム基盤構築のプロフェッショナル」レック・テクノロジー・コンサルティング

技術ブログ

HOME > T.W 執筆記事一覧

T.W 

Capability Tour 2019 ~Singapore Part2 – Oracle19c New Features~

こんにちは。Re:QのT.Wです。

A.Yと共に、私もOracle OpenWorld Asia: Singapore 2019に参加してきました。A.Yによる前回の投稿では、当社のCapability TourやOOW、そして全体的な旅程などの概要について触れましたが、今回はOOWのセッション内容について少しご紹介したいと思います。

内容としては、Oracle Database: What’s New and Comming Up Next with 19c を中心に、Oracle Database最新バージョンの新機能についてです。

・SUPPORT – LONG TERM SUPPORT

まず、Oracle Database 19cでは、LONG TERM SUPPORTを受けられることが確定しました!
ということは、プライマリーサポートは2022年まで、延長サポートは2025年までです。更に、延長サポートは別途追加料金がかかりません。Oracle Database 11g、Oracle Database 12cからのバージョンアップの際は、是非ご活用ください。

・PERFORMANCE – AUTOMATIC INDEXES

次は、インデックス自動作成機能です。Oracle Database 19cで最も注目される機能と言えます。パフォーマンス・チューニングの一環として、インデックスは正しく作成されたのか考慮する必要があります。必要な作業として、データベース全体統計、メモリ、頻繫にソートされる列、LOB、パーテーション、並列処理などの情報を収集及び分析する必要があり、場合によって情報の収集から実装まで数ヶ月かかるかもしれません。

このような大変と思われる作業がOracle Database 19cから変わります。

インデックス・アドバイザと違い、インデックス自動作成機能はただの推奨(recommendation)を提供するだけではありません。
この機能は実際のインデックスを作成まで実装してくれます。

キャプチャー → 識別 → 確認 → 判断および実装 → モニター → キャプチャー → …

以上、五つのステップに加え、自らの間違いを学習する「強化学習」(Reinforcement Learning)により、情報収集、分析、スケジュール調整、インデックスの実装まで一連のコスト(時間や人力など)を削減できることが期待されます。

・PERFORMANCE – REAL-TIME STATICTICS COLLECTIONS

SQLクエリからテーブルへのアクセスをする際、パフォーマンスを向上させるため、事前に収集した統計情報を元に最適な手段でアクセスする必要があります。しかし、これまでの統計情報収集の方法は一定の時間をおいて実行されており、24/7システムにとっては、「最適」とは言えません。Oracle Database 19c のリアルタイム統計情報収集はDMLごと(insert、update、deleteなど)に統計情報が更新されるので、統計情報は常にリアルタイムに近い状態に保たれています。

・HIGH AVAILABILITY – DATA GUARD DML REDIRECT

これまでのOracle Active Data Guardの人気機能として、STANDBYデータベースは主にレポート作成やバックアップ用途として使われており、STANDBYデータベースに対して「書込み」オペレーションはできませんでした。しかし、19cの新機能 DATA GUARD DML Redirect を使用すると、ユーザーはSTANDBYデータベースに対する「書込み」オペレーションが可能です。

実際の実行順番:
1.STANDBYデータベースにDMLを実行
2.DMLがPRIMARYデータベースにリダイレクト
3.PRIMARYデータベースがDMLによりデータ変更
4.PRIMARYデータベースより生成されたログがSTANDBYデータベースに送信
5.STANDBYデータベースのデータが変更

補足ですが、実際のDMLによるデータ変更はPRIMARYデータベースしか処理しないので、STANBYデータベースに大量のDMLクエリを実行するのはできるだけ避けたほうが良いかもしれません。

・Oracle Hybrid PARTITION TABLES

一つの巨大テーブルを複数のパーティションに分割すると、その利点としてはより簡単に管理やパフォーマンスの向上が期待されます。
使用状況に応じて、基本的にはDMLによる更新されるテーブルと読み取り専用テーブルなどの種類があります。Oracle Databse 19c では分割された読み取り専用テーブルを外部テーブルに変更し、ファイルシステムに保存することもできます。さらにクラウドベースのオブジェクトストレージ(Oracle Cloud Object Storage、Amazon S3)に保存することができるようになりました。こちらの新機能もコスト(時間や人力など)を削減することに期待されます。

・APPICATION DEVELOPMENT – PARTIAL JSON UPDATE SUPPORT

これまでのJSONデータ列を更新する際、全く新しい列にデータをアップロードする必要がありました。この機能により、JSONデータ列の一部を更新することができるようになりました。

・Web SQLDeveloper – livesql.oracle.com

DBAとしてOracle Database 19cの新機能を確かめたい時に、以下の2つの方法で確認できます。

方法1のステップ:
1.Oracle公式サイトでOracle Database 19cをダウンロード
2.OSイメージを用意し、インストール
3.Oracle Database 19cインストール
4.確認開始

方法2のステップ:
1.livesql.oracle.com へログイン
2.確認開始

賢いあなたはどちらの方法を採用しますか?

Oracle livesqlを利用するメリットは以下になります。

・Oracle Database 19cが標準インストールされます
・無料
・SQL実行できる
・チュートリアルあり
・スクリプト共有できる

もちろん、SQLを学びたい方、会社の新人研修なども活用できたらと思います。
Oracle Database 19cの新機能は以上のみではありません。
他の新機能に興味がある方はぜひOracle公式で提供しているドキュメントを確認ください。

参考になれば幸いです。

別のメンバが更にPart3を公開予定ですので、そちらも楽しみにしていてください!

MB と MiB の単位記号の使い分け

1MB = 1000kB ? それとも 1024kB ?
どちらが正しいと思いますか。

こんにちは。T.W.です。

普段我々が使っているkB、MB などのデータ単位の記号は、
実際にいくつのバイト数を指しているかご存知ですか。

kBだけの単位を注目いただけると、k と B の2つのアルファベットで構成されています。
この場合ですと、それぞれ下記のような意味を持っています。

・前者:国際単位系(SI)におけるSI接頭辞
 「1000」の代わりにアルファベット「k(1k)」で表現できる。
・後者は:固定サイズのデータ(バイト)の略
 「1000バイト」の代わりに「1kB」で書かれている場合が多い。

▼▲▼▲ 小ネタ ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲
国際単位系(SI)では、小文字の「k」が正式表記になります。大文字ではありません。
(知ってました?これだけでもびっくり!?するかもしれませんね)
▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲

主によく使われる十進法から見るとk、MなどのSI接頭辞を使うことで、
非常に大きな数字を扱いやすくできるメリットがある反面、
コンピュータの世界では二進法で計算を行いますので、
k、Mなど十進法の接頭辞を二進法の数字に使うと数の誤差が生じる場合があります。

例えば、1024バイト(2^10バイト)を1.024kBに書き変えると、さらに扱いにくくなるし、
1kBに書き変えると24バイト分が少なくなるケースがあります。

そこで、上記の問題を解決するために、電気工学、電子工学、および関連した技術を扱う
国際的な標準化団体である国際電気標準会議(IEC)が決めた「2進接頭辞」を推奨しています。

2進接頭辞って、設計書などのドキュメントで見たことありますでしょうか。

2進接頭辞の書き方・読み方(バイトの数を表現する場合)

書き方読み方バイト数の表現
1KiBキビバイト1024バイト
1MiBメビバイト1024KiB
1GiBギビバイト1024MiB
1TiBテビバイト1024GiB
1PiBぺビバイト1024TiB
1EiBエクスビバイト1024PiB
1ZiBゼビバイト1024EiB
1YiBヨビバイト1024ZiB

記述方法は、SI接頭辞の後に「i」を付けるだけですね。

なぜ2進接頭辞普及しないのかとその理由について

2進接頭辞普及しない理由はいくつか考えられますが、よく言われるのはわずかな誤差を無視する慣習があったからです。二進法ベースのシステムでは、大きな量を表す際、SI接頭辞キロ(k)が表す乗数1000に近い1024、SI接頭辞メガ(M)が表す乗数1000000に近い1048576、その誤差を無視する慣習がありました。一気にSI接頭辞ではなく、2進接頭辞を使うことがなかなか社会・業界への浸透ができないのが現状です。別の観点からみると、キロバイトは1000バイトか1024バイトか曖昧な部分もあり、事前に明白・説明する必要があります。

これから2進接頭辞を普及させるべき理由とは

その理由も誤差に密着な関係にあります。
今現在、使用するデータ容量が大きくなってきていますので、桁が大きくなればなるほどにこれから無視できない誤差が生じるからです。

上記の内容で、
1000(k)に近い1024をキロで表現すると、24(2.4%)の誤差が発生し、
1000000(M)に近い1048576をメガで表現すると、48576(4.8576%)の誤差が発生します。
以下の表ご覧ください。

SI接頭辞(バイト)2進接頭辞(バイト)誤差(%)
kBKiB2%
MBMiB4%
GBGiB7%
TBTiB9%
PBPiB12%
EBEiB15%
ZBZiB18%
YBYiB20%

ご覧頂いた通り、単位が大きければ大きいほと、誤差が大きくなることがわかります。

2018年現在TB単位のポータブルストレージを簡単に入手することができます。更に数年後には、PB単位のストレージが量販店で流通する時代がくるでしょう。そのときにあなたは12%の誤差を許容できますか?

そういったことを踏まえて、今から2進接頭辞の記述や読み方を覚えておきましょう。

自分は、今回執筆にあたって改めて詳細を調べたりもしましたが、こういう機会がなくても最新動向や情報に敏感な人ってちょっとカッコイイですよね。

参考になれば幸いです。

以上

資料請求・お問い合わせはこちら

▲ ページトップに戻る

技術ブログ

2019年10月
« 9月    
 123456
78910111213
14151617181920
21222324252627
28293031  
採用に関するお問い合わせはこちら