ディスク IO キューイング
を利用する方法 これを正確に行う必要がありますが、Microsoft SQL サーバー テーブルで行います。
+100 個のテーブルを含むデータベースがあります。すべてのテーブルのすべてのレコードを読み取る必要があります。
助言がありますか?ベンチマークを実行して数秒間デバッグするコードを書く価値はありますか?
各テーブルがディスク上のどこに存在するかを知ることができれば、本当に素晴らしいことです。
そして、誰かが尋ねるからです: はい、これは私のプログラムのボトルネックです。
1 に答える
4
その他の答えは、SQL Server には関係ありません。SQL Server は独自の方法で IO を実行します。
ただし、いくつかのポインター:
- すべてのテーブルにクラスター化インデックスがあることを確認する
- インデックスの定期的なメンテナンスがある
- 下に良好なディスクがあることを確認してください(RAIDなど)
- 重要な場合は、先読み機能に Enterprise エディションを使用してください
- 十分なRAMがあることを確認してください
これは何を意味するのでしょうか?
- 単一のワークステーション ディスクで SQL Server Express を使用する場合は、気にしないでください。これを最適化することはできません
- クラスター化されたインデックスとインデックスのメンテナンスにより、データがディスク上でほぼ連続していることを保証します (その後のデータ変更の影響を受けます)。
- これにかかる時間のプロキシは、すべてのテーブルで DBCC CHECKDB を実行することです。または ALTER INDEX 再構築。どちらも、すべてのテーブルのすべてのデータをディスクから読み取る必要があります
于 2013-04-22T12:47:59.690 に答える