web-dev-qa-db-ja.com

SQLServerログファイルの64Kクラスターサイズ

SQLServerデータベースログファイルとtempdbをRAID1に配置するかどうか疑問に思っていましたが、パフォーマンスを向上させるために64Kクラスターでフォーマットする必要がありますか?

現在、データベースとログファイルはRAID5上にありますが、二重書き込みのために多くの挿入を行う場合、データベースログの方が悪いと思います。

これはSQLServer2005用です

2
RPS

RAID 1は通常、読み取りパフォーマンスは向上しますが、書き込みパフォーマンスは低下するため、大量に書き込まれるログやTempDBには使用しません。理想的には、可能であればSQLServer用のRAID10を使用する必要があります。参照: RAIDレベルとSQL Server

クラスタサイズの質問については、考慮すべきすべての考慮事項の優れた説明について、 SQL Serverのディスクパーティション配置のベストプラクティス を参照してください。この記事では、SQL 2008向けであると述べていますが、2005年にも同様に関連しています。記事からの最も重要なポイントは次のとおりです。

満たされると、最適なディスクI/Oパフォーマンスの基本的な前提条件となる2つの相関関係があります。次の計算の結果は整数値になる必要があります。

Partition_Offset÷Stripe_Unit_Size

Stripe_Unit_Size÷File_Allocation_Unit_Size

2つのうち、1つ目は、最適なパフォーマンスを実現するために最も重要です。以下に、一般的なミスアライメントのシナリオを示します。開始パーティションオフセットが32,256バイト(31.5 KB)で、ストライプユニットサイズが65,536バイト(64 KB)の場合、結果は0.4921875になります。これは整数ではありません。したがって、オフセットとストリップユニットのサイズには相関関係がありません。これはミスアライメントと一致しています。

ただし、1,048,576バイト(1 MB)の開始パーティションオフセットと65,536バイトのストライプユニットサイズは、正確に8の結果を生成します。これは、整列と一致する正確な整数です。

1
Joe Stefanelli

それは(他のすべてのように)データベースに依存します。ほとんどの場合、小さい書き込みを行う場合は、ストライプサイズに一致するアロケーションユニットを使用し、パーティションオフセットがストライプサイズの倍数であることを確認する必要があります。一般に、ストリップが大きいほど高速です。

RAID1とRAID10は、ほとんどの場合、RAID 5よりも小さな書き込みで高速です(RAID 5は、ストライプサイズよりも小さいものを書き込むたびに読み取り/書き込みを行う必要があります。書き込みがストライプ全体の場合、ディスクのペナルティは少なくなります。パリティは読み取り/書き込みが必要な唯一のものであり、ライトバックバッファがそれを処理します)。

ジョーのアドバイスは良いです。あなたがそうしない正当な理由がない限り、私はそれで行きます。

0
Chris S

64K。また、ログは専用のスピンドルにある必要があります。シーケンシャルログの書き込みが他のアクティビティで中断された場合、パフォーマンスに悪影響を及ぼします。また、パフォーマンスを最適化する必要がある場合は、ログと同じスピンドルにtempdbを配置しないでください。

0
Greg Askew