次のようなクエリの標準ですか?
update A set TextField = 'U'
200 万レコードのテーブルで実行するのに 2 分かかりますか? テーブルには PK もインデックスもありませんが、where
どちらも使用していません。
次のようなクエリの標準ですか?
update A set TextField = 'U'
200 万レコードのテーブルで実行するのに 2 分かかりますか? テーブルには PK もインデックスもありませんが、where
どちらも使用していません。
2 分間で 200 万件のレコードが更新されました。これは 1 秒あたり約 16,000 件の更新であり、IMO ではかなりまともです。
ほとんどの DBMS は、書き込み操作をキャッシュにコミットしたときに戻るだけでなく、書き込み操作が実際に実行されたことを OS が確認するまで待ちます。この機能は、データの整合性を確保するために非常に重要です。これは、db サーバーの重要な品質であることに同意するでしょう。対照的に、select
ステートメントは多くの場合、キャッシュから提供できます。
ところで、 Bruce Momjian によるこのプレゼンテーションは興味深いと思うかもしれません。DB サーバーを選択する際に考慮すべきことをうまく説明しています。これは PostgreSQL 中心ですが、彼の説明はすべての種類のデータベース サーバーに有効です。
編集: もう 1 つの興味深い情報源は、Microsoft の Bob Dorr によるこのプレゼンテーションです。これは、SQLServer の IO の 98% が非同期であると述べている興味深いものです。
値が既に含まれている列と null に設定されている列を更新するという観察結果を書いてください。この SO 記事には有用な情報が含まれている可能性があります。TextField
列に使用したデータ型はおそらく大きな影響を与えます。