1

データベースの効率性について読んで、テーブル インデックスは挿入/更新/削除操作に余分なコストを課すと述べました。

単一のレコードを処理する場合は問題ありませんが、多くのレコードが暗示される場合には問題になる可能性があります。

SQL Server を DBMS として使用するアプリがいくつかあります。インポート操作を追加すると、レコードごとに手動でフォームに入力する代わりに、1 回の操作で複数のレコードをビジネス モデルに読み込むことができます。

今私の質問は次のとおりです。インポート操作が実行される前に、SQL Server でテーブル インデックスを無効にすることをお勧めしますか? これは、操作に含まれるレコードの数またはデータの量に依存する可能性がありますか? このプラクティスに関連して、注意しなければならないサイドキックの問題はありますか?

4

1 に答える 1

3

による

  • インポートする必要がある行数
  • どのくらいの頻度でインポートする必要があるか、
  • インポートにかかる時間
  • 他に何人の人が影響を受けていますか。

インデックスを削除すると、すべての人のために削除されます。そのため、影響を受けるテーブルに対するすべてのクエリは、再構築するまでインデックスなしで実行されます。

何百万もの行をインポートする場合、インデックスを削除すると大きな違いが生じる可能性があります。しかし、それが他のユーザーに影響を与える場合は、インポートを完了するための実用的な方法が他にないことが十分に明らかになるまで、インデックスを削除しません。他のユーザーへの影響を回避できる場合があります。

  • 一度にインポートする行数を減らす (より多くのトランザクション)。
  • 最初にステージング テーブルにインポートする、または
  • 営業時間外にインポートをキューに入れる。
于 2012-12-04T11:37:23.630 に答える