SQL Server Expressの「10GB制限」で絶望している担当者へ。Access資産を無改造で救う“多段コンテナ”という選択肢

21.SQL Server Expressの「10GB制限」で絶望している担当者へ。Access資産を無改造で救う“多段コンテナ”という選択肢 IT基盤/セキュリティ

現場を襲う「データ容量の限界」

DX推進の現場で、いま悲鳴が上がっています。

「SQL Server Expressの容量がいっぱいです。これ以上データが入りません」

現場の選択肢は、一見すると絶望的です。

  • Standard版へアップグレード: * 少人数利用の「CALベース」でも、OS代含め数十万円〜
    • サーバー性能を活かす「コアベース」なら、最低でも140万円〜
    • さらに導入工数や保守費が上乗せされ、予算化は容易ではありません。
  • MySQL/PostgreSQLへの移行: Access側のクエリやリンクテーブルを全て作り直す「全面改修」。工数がライセンス料以上に膨らみます。

「お金を払うか、作り直すか。どちらも選べない……」 そんな、身動きが取れなくなったシステムを救う「第3の選択肢」を解説します。

解決策:無料版SQL Serverを「並列」で動かす

SQL Server Expressには「1データベースあたり10GB」という制限があります。しかし、「1台のサーバーに1つのインスタンスしか置いてはいけない」という決まりはありません。

Microsoft公式ドキュメントの記述

Microsoftの公式技術文書(Microsoft Learn)には、明確に「最大インスタンス数」についての仕様が記載されています。

ライセンス条項(EULA)における定義

SQL Server Expressのライセンス条項において、インスタンスの「数」を制限する記述はありません。

  • 無料版の制限の対象: 制限(CPU 4コア、メモリ1.4GB、DB容量10GB)は、あくまで「1つのインスタンスごと」にかかるものです。
  • 物理サーバー全体: 1つのインスタンスが物理サーバーの全リソースを使い切ることは禁止されていますが、OSが許容する範囲内で複数のインスタンスを立ち上げ、それぞれが独立して動作すること自体はライセンス違反には当たりません。

「名前付きインスタンス」という標準機能の存在

SQL Serverのインストーラー自体に、最初から「名前付きインスタンス(Named Instance)」という項目が用意されています。

  • 機能: デフォルトのインスタンス(ポート1433)とは別に、ServerName\Instance02 のように名前を変えて複数のDBエンジンを共存させる機能です。
  • 意図: Microsoftが「1台に複数入れること」を前提に設計し、そのための管理ツール(SQL Server Configuration Managerなど)を提供していること自体が最大の裏付けです。

そこで、Dockerコンテナを活用します。
1台の物理サーバー内に、複数のSQL Server Express(コンテナ)を立ち上げるのです。 これにより、本来1.4GBのメモリと4コアのCPUしか使えない無料版の制限を、コンテナの数だけ「掛け算」で利用できるようになります。

アプリを改造しない「2つの接続マジック」

問題は、バラバラになったデータをどうやってAccessから1つのDBとして見るかです。
ここでITコンサルの「知恵」が光ります。

リンクサーバー + 統合ビュー(現行維持・最短ルート)

最新データは「メインDB」、過去データは「アーカイブDB」に配置。
メインDBからアーカイブDBへ「リンク」を貼り、SQL Server側でこれらを1つにまとめた「ビュー(View)」を作成します。

  • メリット: Access側からは、今まで通りのテーブル名に見えるため、プログラムの修正は一切不要です。

分散パーティションビュー(運用効率・パフォーマンス重視)

SQL Serverに「どのデータがどのコンテナにあるか」を自動判別させる高度な仕組みです。

  • メリット: データの書き込み(INSERT)も自動で振り分けられ、検索スピードが劇的に向上します。※主キー設計の調整で対応可能です。

DXの本質は「安価な道具を賢くつなぐこと」

高額なライセンス料を払って解決するのは、資金力のある大企業のやり方です。
中小企業のIT活用において本当に必要なのは、「今ある資産(Access)を捨てずに、設計の工夫でコストを抑える」こと。

  1. マスターデータ: メインDBに集約。
  2. 最新データ: メインDBで高速に読み書き。
  3. 過去データ: 10GBを超えた分から順次、別コンテナへアーカイブ。
  4. フロント: ユーザーは何も意識せず、これまで通りの画面で全期間のデータを参照。

この「Smart Rebuild」こそが、ITコストを最適化する最短ルートです。

あなたのDB、あと何GB残っていますか?

「10GBの壁」は、放置しても解決しません。限界が来てシステムが止まる前に、プロの視点で「出口戦略」を立てませんか?

タイトルとURLをコピーしました