• ベストアンサー

大量データ削除中の他処理のパフォーマンスについて

hue2011の回答

  • ベストアンサー
  • hue2011
  • ベストアンサー率38% (2800/7250)
回答No.1

キャッシュです。 データを追加・修正・削除するとインデックスの更新が必要になります。 リレーションの更新も必要になります。 つまり、ひとつのデータだけを削除するとしても、 そのデータを含んだテーブルのプライマリキー構造の更新が必要になります。 そこに含まれているメンバーがインデックスの一員だった場合、インデックスの構成しなおしが必要になります。 リレーションが切ってあった場合、およびViewが設定してあった場合はそれらは全部作り直しになります。 これらはコミットによりサイクルが作られますけど、外でこのDBを参照しているプログラムがあったら、そのコミットに対しウェイトがかかります。

関連するQ&A

  • アクセス負荷の分散

    こんにちは。 あるクライアントから大量データでテーブル参照/更新をかける処理を実行し、高負荷がかかると、他のクライアントからはテーブルへアクセスが全く出来ない状態になってしまいます。 (その処理が終了すれば、アクセスできるようになります) このような状態を回避し、大量データ処理中であっても他のクライアントからのアクセスが可能となるような解決方法はあるのでしょうか?(もちろんパフォーマンスは落ちるとは思いますが) 素人質問で申し訳ありませんが、解決法をご存知の方がいらっしゃいましたらご回答をお願い致します。

  • ひとつのフォルダに何個のファイルを入れるとパフォーマンスが悪くなるか

    仕事で困っているので質問させていただきます。 windowsXP(NTFS)で作業を行っています。 ひとつのフォルダに大量のファイルを入れてしまうとwindowsのパフォーマンスが悪くなってしまいます。 大体どの程度のファイル数で著しくパフォーマンスが下がってしまうのでしょうか? あと、何かの要因(ディスクのキャッシュなど)でも違うものなのでしょうか? お手数ですがよろしくお願いします。

  • ACCESS2000での大量データ処理

    CSVファイルの情報をACCESS2000にインポートして集計処理をしたいと考えてます。 CSVファイルの構成は、20フィールド(全て文字属性)で1レコード、1400レコードで1件となっております。(この仕様を変更する事は出来ないのが条件です。) 言い直せば、1名分の情報は1400レコードあるとなります。但し、集計に使用する情報はその内の400レコードであり、1000レコードは不要です。 処理する人数は3万件ぐらいあります。 (1)1400レコード×3万件の情報をインポート出来るのでしょうか?    テーブル制限の1Gを超えないのでしょうか(テーブルサイズの参照方法も?) (2)CSVをインポートする際に、必要なフィールド400だけインポートできるVBAはあるのでしょうか?  必要不要の判別フィールドはあります。 (3)インポート後、ACCESSで400項目を1レコードにする事はできないか?255以上のフィールドのテールを処理する方法はあるのでしょうか? (4)このような大量集計を可能にするには、みなさんは何を使用しているのでしょうか? よろしくお願いいたします。

  • 大量にデータを更新するテーブルの統計情報について

    大量にデータを更新するテーブルの統計情報の取得タイミングについてついて質問があります。 該当のテーブルはワークテーブルでテーブルの1/3程の大量データを毎回delete,insert,selectの順番で処理をおこなっています。 大量のデータを毎回更新しているのでselect文の際に統計情報が古いため実行計画が正しくなく処理が遅くなる可能性があるのでは無いかと心配しております。 統計情報は、取るべきでしょうか?取る場合は何時のタイミングで取るべきでしょうか? Oracle 9iを使用しています。 宜しくお願い致します。

  • コレクションを使用した場合のパフォーマンスについて

    plsqlのコレクション(table)を使用してテーブルの更新を行う場合に、 コレクションのレコードを構成する項目数が多かったり、レコード件数 自体が多かったりすると、更新時のパフォーマンスが著しく低下する のですが、コレクションに大量にデータを追加するのはあまりいい 方法ではないのでしょうか?

  • ACCESS2003 テーブルから特定のデータを削除する

    初めまして。ACCESS2003で、"Aテーブル"(電話番号、郵便番号、名前、住所のフィールドがあります)から別の"Bテーブル"(たとえば電話番号削除リスト、削除する電話番号のフィールドのみ)に該当するレコードのみを削除するといったような作業をするには、どのようにしたら良いでしょうか? アクセス初心者で困っています助けてください。

  • AS400のパフォーマンスが重たい

    お世話になります。 昼過ぎからAS400サーバーのパフォーマンスが急に悪くなりました ファイルの更新・データの読込などいつもより一テンポ以上遅いです CPUは40%前後 ディスク使用量は71% です。 オペレーションコンソールPCは現在ディスクチェック中です。 インターネットやファイルサーバーにはスラスラ繋がるので ネットワークの負荷ではないと思います。 コマンドWRKPRBではエラーは上がってきていません。 使用されている現場の方、複数から問合せがきているので AS400になにか問題があるのは間違いなさそうです。 原因は何が考えられますでしょうか。 ご解答宜しくお願い致します。

  • SELECT時のパフォーマンス

    ケースA:[SELECT文]-[DB2].[ビュー]-[DB1].[テーブル] ケースB:[SELECT文]-[DB2].[テーブル] [テーブル]はどちらも同じ内容です。 ケースAは[DB1]にある[テーブル]を[DB2]の[ビュー]を通して見てます。 ケースBは[DB2]に[DB1]の[テーブル]と同じ物をコピーしています。 同じSELECT結果を表示するSQLで ケースAとケースBでパフォーマンス的に差が出るのでしょうか? 私が思うのはケースAの場合別DBにあるテーブルをビューを使って 見てる事によって、DBやテーブルへのアクセス権限等の 確認処理でパフォーマンスが低下すると思うのですが 推定実行プランやプロファイラで見てもよく分かりませんでした。 些細な事でも構いませんので、教えてくださいませ。

  • Accessへの大量データ登録

    Access VBAの初心者です。 現在、VBAにてAccessのテーブルに100万レコード程度のデータを登録しようとしています。 最初は1レコード毎、SQLでinsertしようとしていたのですが、時間が想定以上にかかるので断念しました。 次に、CSVに一回書き出してDocmd.TransferTextすることを検討しましたが、読み込んだテーブルにselectした結果が安定しないため色々調べたところ、DoCmdは非同期で動くらしいです。 とすると次のクエリをかけるにはちゃんと全レコード読み込んだかを確認し、読み込んでいなければウェイトをかける処理を入れる必要があり、これも馬鹿馬鹿しいのでやりたくありません。 そこでお聞きしたいのですが、このような場合、どのような処理をするのが定石なのでしょうか。 皆様のお知恵をお借りできれば幸いです。 宜しくお願いいたします。

  • テーブルの削除について

    DoCmd.OpenQuery "更新"でテーブルAを更新クエリを実行データBの データを更新してから DoCmd.DeleteObject acTable, "データB" でテーブルを削除するとエラーで削除できません どの様にすねれば削除できるでしょうか アクセス2003 XP の環境です よろしくお願いします