トランザクションログファイルを別のドライブに配置すると、パフォーマンス上のメリットはありますか?


9

SQL Serverデータファイルを1つのハードドライブに配置し、トランザクションログを別のハードドライブに配置することのメリットを称賛する多くのブログ投稿とベストプラクティスの記事があります。理由は、トランザクションログにはシーケンシャルな書き込みしかありませんが、データベースファイルではランダムな読み取りと書き込みが発生するためです。

しかし、何百ものデータベースがある場合はどうでしょうか?数百のトランザクションログファイルを別のディスクに配置することには、本当にパフォーマンス上のメリットがありますか 複数のトランザクションログが書き込まれている場合、トランザクションログの書き込みはデータベースの書き込みと同じくらいランダムになると思います。

回答:


7

正しい。理論的には、数百のDBがある場合、各ログに1つずつ、数百のドライブが必要です。実際には、そのようなケースは気にしませんが、数百のDBがある場合、 DB に対して一流のTPCパフォーマンスを明らかに期待しないことが原因です。多くの場合、高スループットで厳格なSLAを持ついくつかのDBがあり、それらをそれぞれ別のスピンドルに置くことができますが、多くの低レベルのSLAはいくつかの共有ディスクに詰め込みます。


2

トランザクションログはまさに...すべてのトランザクションの実行ログです。そのため、チェックポイントが設定されて上書きされるまで、または切り捨てられて上書きされるまで、一方向で継続的に埋められます。上書きは順次です。

データファイルを検討します。顧客レコードには、5年前の注文と10年前の注文が含まれる場合があります。これらの注文を削除すると(たとえば、他の場所にデータをアーカイブしている場合)、現在のtlogには、削除1と削除2があります。ただし、データファイルでは、5年前と10年前に書き込まれたブロックに触れています。

だからそれは確かに問題です:)


2

トランザクションログを単独で別のディスクに配置すると、他のデータ/ログファイルと一緒に配置するよりもパフォーマンスが向上します。すべてのログを同じディスクに配置すると、実際には順次IOではなく、これらのログファイル間でランダムIOが実行されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.