ICT中級講座 F/U NO.18
メディカルICTリーダー養成講座【中級】フォローアップ
≪サーバー保守学≫
医療現場のサーバーやシステム保守運用業務に役立つ情報を定期的に配信しています。
サーバ保守学(17)
(執筆者)亀田医療情報株式会社 塚田智
みなさん、こんにちは、サーバー保守学第17回です。新型コロナウイルスの感染拡大は、いったん落ち着くような気配でしたが、最近またしても感染者数が増加しています。ここ数か月の間に、世界中でいろいろな対応がありましたが、これからも長期的な対応が必要になりそうです。みなさんの医療機関でも、年単位で対応が必要になることでしょう。
さて、今回は電子カルテなどのシステムを長期間運用していると遭遇するレスポンス悪化(システムの応答時間の増加)についてです。レスポンス悪化の原因は、データベースに起因するものと、ネットワークやサーバーに起因するものがあります。今回はデータベースに起因するものについて、少し詳しくその原因と対策を考えていきたいと思います。
レスポンス悪化の原因と対応(1)
1.インデックス
データベースでは、大量のデータの中から必要なデータを検索します。検索を高速にするのがインデックスです。電子カルテなどのプログラムでは、開発時からどのような条件で検索されるか考慮し、それに合ったインデックスを業者があらかじめ提供しています。
しかし、長期間のデータを蓄積することで想定以上の件数になったり、個々の施設の業務特性によりデータに偏りのある状態になることがあります。そのような場合に、インデックスを追加変更することで、検索の効率を上げることができます。
レスポンスが悪化した処理で使われる検索条件を特定し、それに適したインデックスを作成できれば、効果は非常に大きいです。1つの処理をするのに、インデックス作成前は数十万行の読み込みが必要で数十秒かかっていた処理が、作成後は数十行の読み込みで1秒以下になることもあります。
ただし、処理が複雑で適切なインデックスを作れない場合もあります。そのような場合は、プログラム修正などインデックス以外の方法を検討します。また、無計画にインデックスを追加すると、全体のレスポンスが悪化することもあります。
事前に計画できるインデックスは、電子カルテなどのプログラムと同時に提供されます。インデックスを追加変更するのは、レスポンスが悪化した後の対処として行われます。この対応は、一般的には医療機関のユーザーが実施するものではなく、電子カルテの開発元などの業者が行うものです。
2.再編成と統計情報
データベースを長期間使っていると、ハードディスクなどのストレージに保管されているデータが、連続した場所ではなく飛び飛びの場所に保管されるようになります。このような状態を断片化といいます。断片化されたストレージからは、必要なデータの取り出しに時間がかかるようになります。断片化されたデータの並び方を整理するのが再編成です。再編成には、データの再編成とインデックスの再編成があります。通常は両方とも同時に実施します。
再編成によって、連続したデータの取り出しやインデックスの読み込みが速くなります。しかし、電子カルテのような業務では、連続したデータの取り出しは、それほど多くありません。よって、再編成によるレスポンス改善の効果は限定的です。最大でも処理時間が10%程度改善される程度の効果だと思います。
前述のインデックスの作成は、レスポンスが悪化したときの対処ですが、再編成はレスポンスが良好でも、日常的に実施しレスポンス悪化を予防するものです。最近のデータベースでは管理機能が充実し、再編成は自動化されており、システムが必要と判断したときに自動的に実施されます。ただし、再編成の処理による影響を考慮する必要があり、日中に再編成をしたくない場合もあります。この場合は、毎週か毎月定期的に再編成を実行するように設定します。全体をまとめて実施するのではなく複数回に分けるなど工夫します。
再編成に続いて行われるのが統計情報の更新です。統計情報とは、データベースにどのようなデータが、どのような順番で、どれくらいの件数あるか、などの情報が記録されています。データベースはこの統計情報から、最も効率の良いデータ取得方法(アクセスプラン)を計算します。再編成の後はデータの並び順が変わるので統計情報の更新が必須です。統計情報の更新だけでもレスポンス改善の効果は期待できますが、正常な状態のデータベースならば効果はとても小さいです。何らかの原因で統計情報が古い場合には、比較的効果が大きくなります。
レスポンス悪化は、システムの利用者にとっては大きなストレスになります。若干の機能不足があってもレスポンスの良いシステムが高く評価されることも多いです。システム管理者としてはレスポンスを良好に維持する責任があります。とはいうものの、その対策は、業者が実施するものでシステム管理者が単独で実施できるものではありません。実施できないまでもレスポンス悪化の原因と対策を理解しておくことで、業者の対応を促し、業者と協力して対応できるようになります。業者と対等に会話できるような知識を持っておきましょう。
次回は、レスポンス悪化の原因と対策のうち、ネットワークやサーバーに起因するものを考えたいと思います。