SQLServer2005でデータ領域を更新する方法

このQ&Aのポイント
  • SQLserever2005を使用し、データベースの容量がいっぱいになりエラーが発生しました。容量を空けるためにテーブルを削除しましたが、容量が変わらず困っています。削除した分のデータ領域をHDの空き容量に反映する方法を教えてください。
  • SQLServer2005を使用し、データベースのトランザクションログがいっぱいになりエラーが出ました。容量を確認したところ、ほとんど空き容量がありません。テーブルを削除しても容量が変わらないため、過去に作成されたデータ領域が残っている可能性があります。データ領域を更新する方法を教えてください。
  • SQLServer2005を使っていて、データベースのトランザクションログがいっぱいになりエラーが発生しました。空き容量を確認したところ、ほとんど残っていません。テーブルを削除しても容量が増えないので、過去に作成されたデータ領域が問題の原因かもしれません。データ領域を更新する方法を教えてください。
回答を見る
  • ベストアンサー

SQLServer2005でデータ領域を更新したい

SQLserever2005を使用しております。 あるデータベースをHDに入れて計算してたところ 「データベース '---' のトランザクション ログがいっぱいです。」 とエラーが出てしまい、HDの容量を見てみたら9MBほどしか空いてませんでした。 容量が空いてないのが原因かなと思いデータベースのテーブルを いくつか削除したのですが、HDの空き容量は変わっておりません。 恐らく過去にテーブルを作成した際、データ領域が追加されてしまい、 削除してもそのデータ領域が変わっていないのではないかと思うのですがこのデータ領域を更新することは出来ないでしょうか? [要するに削除した分のデータ領域をHDの空き容量に反映できないのでしょうかという意味です] ご教授宜しくお願いします。

  • kikei
  • お礼率70% (82/116)

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

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

2005は知りませんが 2000では、テーブルなどのデータとトランザクションログは 別ファイルになっています。 ログは障害発生時の復旧に使用するものです。 設定によっては、ログが限りなく大きくなります。 ときどき、ログの切捨てを実行しなくてはいけません。 詳細はこちらで。 http://support.microsoft.com/kb/317375/ja  

kikei
質問者

お礼

回答ありがとうございます。 色々調べたところデータベースの圧縮で問題が解決しました。 質問を締め切ります。

関連するQ&A

  • 伝票入力のデータ更新方法について

    Accessで日毎の商品の製造入力を考えていますが、この入力を複数のパソコンで入力可能にしたいです。 画面は、 日付 2022/7/1 行 商品コード 製造数量 1 1001   10 2 1002   20 3 1003   30 「登録」 「削除」 のような感じです ちなみに、今までの作り方は、日付が入力されたら7/1の製造テーブルから明細をワークテーブルに入れて、画面で追加や変更をします。データ更新の時に、製造データの7/1のデータを削除して、追加や変更されたワークテーブルを製造テーブルにINSERTしてました。 ただ、これは他のパソコンで同時に7/1の製造入力が行われたら、他のパソコンで追加等のされたものが反映しないので、どのような方法で更新すれば良いですか? ただ、7/1の製造テーブルが他のPC使用中です!で止めたくはないです データベースはSQLSERVERを使います 宜しくお願い致します

  • マスタデータ更新

    こんにちは。 システム開発の基礎的なところがわからないので、教えていただきたく、投稿させていただきます。 システム開発をほとんどやったことがないので、言葉が変なところもあるかと思いますが、宜しくお願いいたします。 サーバー上に、AというSQLServerのDBがあります。 今までは、システム管理者のみがAccessからA.DBのリンクテーブルを使い、マスタデータの更新/追加/削除を行っていましたが、今後、リーダークラスの人もできるようにしたい!という要望があり、そのインターフェース部分を作成しています。 いろいろと考え、フロントエンド側にAccessでB.mdbを作成し、そこには、A.DBと同じテーブル構造の一時TBLを作成し、B.mdbを開いた時にA.DBから全データを取得することにしました。(取得するところまではできています) ここから、設定するための画面作成をしますが、最終的に、更新/追加/削除されたデータは、どのようにA.DBにUPすればいいのでしょうか? 考えた方法として (1)B.mdb内に、一時テーブルとは別に、更に同じ構造の変更用テーブルを作成。 設定画面から更新/追加/削除されたデータは変更用テーブルに保存し、全ての処理が終了したら、変更用テーブルにあるデータを1つづつ見て、A.DBへ更新/追加/削除をかける (2)一時テーブルのデータを直接更新/追加/削除し、全ての処理が終了したら、全テーブルのレコードを1件づつ比較し、A.DBへ更新/追加/削除をかける というくらいしか思いつかないのです。 その他に思ったのが、一時テーブルもしくは変更用のテーブルに、レコード毎に「更新/追加/削除」がわかるようにフラグを設けて、そのフラグに従ったSQL文を発行する というくらいです。。。 根本的に、マスタデータに対する更新/追加/削除のやり方が間違っていたりしますか? 誰も聞ける人がいないので、どうぞ宜しくお願いいたします!!!

  • エラーについて(更新)

    Txtファイルには 1,A ~ 10,A のデータが入ってます。 データベースはmysqlで mysqlにはフィールドは ID NAMEで 1  1 ~ 9  1 のデータ9つが入ってます。 Txtファイルの10番目のデータを更新させると データベースにそれに対応したコードがないため エラーが出るはずなのですが、 エラーの形が次のようになります。 データが登録されました。データが登録されました。アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません 何故なのでしょうか? 自分ではtxtファイルの10番目のデータを更新するときにだけエラーがでると考えているのですがそのように 動作してくれません。何故そのように動作しないのでしょうか?また、エラーがでているにもかかわらず 更新処理は全て正常に動作しています。 コードについても載せたいのですが 文字数制限で載せることができませんので 回答していただいた後に、補足で載せさせて頂きたい と思います。

  • Excelピボットテーブルのデータ更新について

    元のリストのデータを変更して、「データの更新」ボタンをクリックすると変更が反映され、ピボットテーブルも更新されますよね。 ところが、元のリストの下にデータを追加していった場合はピボットテーブルに反映されません。。。 これはその都度ピボットテーブルのリスト範囲を選択しなおして訂正するという方法をとるしかないのでしょうか。 最初からリスト範囲を広めにとると、テーブルに空白ができてしまいます、何か方法があるのでしょうか?

  • SQLServer2000からSQLServer2005へのデータ移行

    SQLServer2000からSQLServer2005へのデータ移行方法 Microsoft SQL Server ManagementStadio Expressで SQLServer2000のバックアップファイルから、 ローカルの開発環境(SQL Server2005 Express)でデータベースを復元しようと試みましたところ、 復元が正常に出来ませんでした。 復元はエラーが発生せず完了しデータベースは作成されているのですが、 データベースを右クリックで削除やプロパティを見ることもできず、 どのようなテーブルが存在するのか中身の参照も追加も何もできない状態です。 http://qanda.rakuten.ne.jp/qa4183273.html 上記URLなどでSQL Server2000のバックアップから2005で復元しているような発言がされているので 可能だと思うのですが、何か特別な処理が必要なのでしょうか? ご存じのかた、教えていただけますようお願いいたします。

  • データの更新判断

    この方面に詳しくないので用語などに間違いがあるかもしれません SQL Server2008 RC2 を使っています データベースに複数のデータ列が存在してデータ件数(レコード数)は不定です プログラムは VC2010にて自作  ODBC経由でアクセス データベースの構造はある程度自分で加工可能 データベースへの件数の削除・追加・更新は自作プrグラム以外からも行われる 自作プログラム以外には以外には極力影響与えたくない 上記データベースの件数の変化については現状 SELECT COUNT (*) FROM [データベース名]  のポーリングで件数の増減の検出 新規追加の判断に関してはデータ列の中に データ登録日を保存することで それをソートして処理していますが 何処かのデータの一部が更新されたというのを検出することは可能なのでしょうか?   ※ 判断したいのはデータの追加と更新だけで削除されたデータが     どういったものであったかを判断する必要はありません 更新データも全データを都度ポーリングチェックすれば判断はできるでしょうが データ件数によってレスポンス的に使えない代物になると考えています データベースの設定やプログラム的なもので対処できるものなのか 無理なのか(個人的に無理だと考えてる) 可能であればどういった方法で実現できるのか わかる方がいたら教えていただけないでしょうか (無理なら無理で構わない  ->  詳しい方の判断を求めたい) 内容に不足があれば補足させていただきます

  • あるテーブルのデータを追加、更新、削除できないようにするには?

    SQLServer2000 あるテーブルのデータを追加、更新、削除できないようにするにはどのようにしたらいいでしょうか。 どなたかご存知の方、お教え下さい

  • 複数テーブルへのデータ更新

    sql server 2012環境です。 c sharpを利用してDB登録処理を書いています。 10万件のデータを3つのテーブルにそれぞれ入れたいのですが、一度に 10万件でなく、1万件ずつコミットさせたいと思っています。 データの元となるテーブルは1つで、それに10万件のデータが あるイメージです。 イメージとしては トランザクション開始 テーブル1へ1万件登録 テーブル2へ1万件登録 テーブル3へ1万件登録 コミット というようなことを10回ループしたいのですが、可能でしょうか。 1つのトランザクション内で3テーブルへ更新をかけるやり方がよくわかりません。 あとは大元のテーブルをrow_numberを使って1万件ずつselectすればどうだろうかと 思っています。

  • ディスクの領域不足

    最近、PCを立ち上げるとすぐに 「ディスクの領域不足」 Windowsのドライブには、まだ183MBの空き領域しかありません。システムの信頼性を確実にするためには、Windowsのドライブに少なくとも200MBの空き領域があることを推奨します。使用してないプログラムを削除することにより、ディスク領域をさらに空けることができます。 とでるようになりました。 ゴミ箱の削除とクリーンアップをした状態でこの表示が出てしまったので、さらに領域を空ける(あと17MBほど)にはどうしたらよいでしょうか? 今のところ WINDOWS ME(C)は容量13.9GB、空き領域4.14GB ローカルディスク(D)は容量4.64GB、空き領域181MB となっているようです。 パソコン名:LavieC LC700J/6 OS:WIN ME→WIN XPに入れ替え。 なので、PCの状態は少し厳しい状態です。 やはり、プログラムの追加と削除で使わないものを削除した方がよいのでしょうか?

  • テーブル領域をrmコマンドで消してしまいました.

    Oracle(ver8)データベースを使って、sqlコマンドでテーブルを作成後、UNIXのrmコマンドでテーブル領域を削除しまいました。 そのため、Oracle起動時にこの領域をマウントしようとして失敗してしまい データベースにアクセスできません。 復旧方法をご教授下さい。 テーブルは不要なので、Oracleデータベースにこの領域が削除されていることを認識させたいのです。

専門家に質問してみよう