SQLServerでのデータベース設計について

このQ&Aのポイント
  • データベース設計のポイントとは?
  • データ量が増えるとディスク容量やパフォーマンスに影響する可能性
  • データの分割処理で負荷を軽減できるかもしれない
回答を見る
  • ベストアンサー

SQLServerでのデータベース設計について

あるシステムのデータベース設計をしております。 あまり知識、経験が無い為ご知恵をお借り出来たらと思います。 システムの概要としては、 「600件程度のデータを1時間毎にデータベースに取り込む。これを24時間365日続ける。さらに20箇所分同時に処理を行う。」 というものなります。 ざっと試算すると、1年だと ((600件 * 24時間) * 365日) * 20箇所 = 105,120,000件のデータを持つことになります。 これを10年間で考えると、105,120,0000件となります。 今のところ、シンプルに600件をそのまま取り込もうとしておりますが、 データ量が膨大になってしまう為、ディスク容量やインデックス等貼ったとしてもパフォーマンスが落ちないか等不安になってしまいます。 MSDNの情報でデータベースの容量を見積もったのですが、105,120,0000件だと1TB程必要となるようでした。 SQLSeverでこの位の件数、容量は一般的なのでしょうか? もしくは600件をそのままでは無く、1データとして取込み、 データを表示する際にプログラムで分割して処理する等の形にするのが良いのでしょうか? ちなみにWindows 2008 R2サーバーでSQLServer 2008 R2 Webエディションの環境となります。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • webuser
  • ベストアンサー率33% (372/1120)
回答No.1

>データ量が膨大になってしまう為、ディスク容量やインデックス等貼ったとしてもパフォーマンスが落ちないか等不安になってしまいます。 データ量が膨大になれば当然パフォーマンスは落ちます。 でも、10年間も手を加えずに動いているシステムは滅多に見ません。 Windows Server 2008 R2自体、2018年には延長サポートが終了してしまいます。 そのままあと8年動かすとは考えにくい。 システムの詳細が分からないので何とも言えませんが、とりあえず、実際に稼働させて状況見ながら改善でもよい気もします。

関連するQ&A

  • filemaker から SQLserver へ

    filemaker から SQLserver へ データ移行するのに最適な方法、参考情報を教えてください filemaker8.5で作られた購入品の管理システムがあり 集計の為に慣れた、SQLSEVERやEXCELを利用したいために、 filemaker8.5のマクロでSQLserverへ出力マクロを作り、日に数回処理を行っています filemakerは入力などの面はなかなかバカに出来ない使い勝手なのですが 集計を行うには良い情報が無い・集計出来ないと思われる情報ばかりなことから 実現出来たのが上記の通りなのです filemaker自体の不具合やこの手法の汎用性のなさからデータ移行したいテーブルがあるにも関わらずなかなか進んでいません 根本的に違う、適切な方法があるのではとモヤモヤ思いながら、時間が取れ次第集計環境を作っていますので、ぜひアドバイスお願いします

  • SQLServer2000でバックアップしたデータを2005へ復元

    MSDE2000+VB6.0でシステムを構築しております。 容量の制限によりSQLServer2005に移行することになり MSDE2000のデータをバックアップし、 SQLServer2005にデータベース復元しました。 復元は問題なく完了しシステムも正常に稼動しています。 しかしながら、処理速度がかなり遅くなってしまいました。 (マシンスペックは、MSDE2000よりも格段に高くなっています) 2005に復元した際、他に何か処理を行わなければならないのでしょうか? ご教授いただければと思います。 よろしくお願いいたします。

  • SQLServerのデータベース間でデータコピー

    こんにちは。SQLServer2000(SP3a)、VB6.0(SP5)でデータベースの勉強をしています。用語に詳しくないので、うまく説明できないと思いますが、相談にのってください。 SQLServerに、「データベースA」と「データベースB」があり、VBのコマンドボタンをクリックすると、データベースAのテーブル1のデータをそのままデータベースBのテーブル1に移動させたいと思っています。 私の知識では、データベースAのテーブル1のデータをSelectですべて読み込み、変数などに入れておき、データベースBのテーブル1にInsertするという効率の悪い方法しか思い浮かばず、レコード数が多いので、時間がかかり困っています。 他に良い方法があればアドバイスをお願いします。 よろしくお願いします。

  • SQLServer学習の進め方

    仕事でOracleからSQLServer2005へ移行します。 DB関係はほぼ初心者に近いレベルですが、時間がなく効率よく学習したいと思っています。 その為、SQLServerの学習お勧めサイトか、お勧め良本はないでしょうか? なんでもいいので教えてください。 MSDNはややこしくて見にくいですが、やっぱMSDNを見た方がいいのでしょうか?皆さんはどの様にSQLSERVERを学んでいますか?

  • SQLServer2005のレスポンス悪化について

    既存システムのサーバリプレースを実施した際に、データベースをSQLServer2000からSQLServer2005にアップグレードしたところ、 システムの各機能動作に遅延が発生してしまいました。 SQLのバージョンを、SQLServer2000からSQLServer2005にした為に、 遅延が発生した事例などないでしょうか? 動作環境は以下の通りです。  OS:Windows Server2003  SQL:SQLServer2005 ちなみにデータベースデータの復元はSQLServer2000のバックアップファイルからデータを復元しております。 

  • SQLserver2005のデータベースミラーリング 32bit-64bit

    SQLserver2005のデータベースミラーリングについて教えてください。 現在Windows2003R2(32bit)+SQLserver2005(32bit)でDBを構築しています。 可用性向上のためにデータベースミラーリングを構成しようと考えています。 そのため新規にサーバーをWindows2008(64bit)+SQLserver2005SP2(64bit)で計画しています。 (メインのSQLserverはSP2にします) このとき、SQLserverは32bitと64bitの間でミラーリングは構成できるのでしょうか。 MSDNに下記記載が有りますが、これは上記の構成が可能ということでしょうか。 http://msdn.microsoft.com/ja-jp/library/ms366349(SQL.90).aspx 「SQL Server のディスク上ストレージ形式は、64 ビット環境でも 32 ビット環境でも同じです。このため、データベース ミラーリング セッションでは、32 ビット環境で実行されているサーバー インスタンスと 64 ビット環境で実行されているサーバー インスタンスを組み合わせることができます」 よろしくお願いします。

  • ACCESSからのSQLSERVERに変更すべきですか?

    ACCESSからSQLSERVERに変更する時 どのような時に変更すべきですか? 現在 サーバーをWindowsNT4.0Server データベースは、複数のMDB(ACCESS)を使用し 累積データ件数は、10万件で 日次更新、月次更新など 更新時間を短縮したいと思っています。 そのためサーバーをWindowsNT4.0Serverから Windows2003サーバーに仮に移行したら 日次処理が10時間から1時間に短縮しました。 (データベースは、ACCESSのままです) サーバーだけ変更したほうがよいか? それともデータベースも変更したほうがよいですか? 教えてください。 よろしくお願いします。

  • Windows2000ServerにあるSQLSever2000のデータベースをODBC経由で参照したいのですが・・・

    Window2000ServerにあるSQLServer2000のデータベースをWindows98で参照したいのですが、ODBCデータソースの設定がうまくいきません。 Windows98でODBCデータソースの設定をしようとしても、データベースのあるサーバーが見えない(「接続するSQLServer名」が「(local)」しか選択できない)のです。手入力してみてもダメでした。 Windows2000ServerにあるSQLSever2000のデータベースをWindows98のODBC経由で参照するのは無理なのでしょうか? どうぞよろしくお願いします。

  • SQLServer2000:データベース復元失敗

    SQLServer2000を使用しております。 別環境のデータベースのバックアップファイルを当該環境へ復元させたいと考えているのですが、 バックアップデータファイルを指定して復元を行ったところ、以下のダイアログが表示され、復元に失敗します。 "物理ファイルを拡張しようとした時に MODIFY FILEでオペレーティングエラー112(ディスクに十分な空き容量がありません。)が"発生しました RESTORE DATABASEが以上終了しました" 別環境のデータファイルは230M、トランザクションログファイルは11Gでした。 復元先のドライブの空き容量は17Gです。 十分に空き容量があると思われるのですが、なぜ上記のようなダイアログが出るのでしょうか。また、データファイルのみの復元ということは不可能なのでしょうか。 ※ トランザクションログファイルが肥大化している件につきましては、   ログの切捨て、ファイルの最大サイズの指定、及び復旧モデルも"シンプル"と修正する様対応する予定です。 上記の件につきまして、原因、または対応方法がお分かりになる方がいらっしゃいましたら、 ご教示のほど、何卒よろしくお願いいたします。

  • accessからsqlserverへの移行について!

    accessからsqlserverへの移行について! 現在accessでシステム運用しています。 処理に時間がかかるのでDBのみsqlserverへの移行を検討しています。 時間がかかる原因は計算項目が多く計算の為に必要な定義項目と参照項目で計算項目を含めると約300項目となります。 この為、クエリーをNo.1とNo.2の2個のクエリーに分けて対処しています。 クエリーNo.2はNo.1の式の値を使用し更に式で計算しています。 クエリーで定義している計算式も条件が複雑なものもありさらに計算結果⇒計算結果⇒・・・・となっています。 この様な内容なので入力画面はレスポンスが遅く印刷は5~10分位かかるものがあります。 とりあえず印刷処理を早くしたいと思い一旦ワークテーブルに必要項目を出力する等をやって見ましたがやはり抽出に時間がかかりあまり改善しません。 データ件数は約3万件なのでデータ件数は問題ないと思っています。 accessの処理はそのままでDBをsqlserverからODBCでリンクしようと思います。 DBをsqlserverに移行することで処理速度の改善はどの程度見込めるのでしょうか。 計算項目数が多いのであまり見込めないのではと思っています。 accessからsqlserverへの移行された方でどの位改善されたのか教えて下さい。 現在の運用環境はサーバは使用せずファイル共有で4台のPCで運用しています。OSはWinXPです。 今回も専用サーバは使用せず現在のWinXPのPCにSQLServer2005無料を使用しようと思っています。 又、accessの処理で他に早くする方法がありましたら教えて下さい。 よろしくお願いします。