SQL Serverサーバー

  
を最適化する方法1.データファイルとログファイルは別々のディスクに別々に保存されます

データファイルとログファイルは多くのI /Oを生成します。可能であれば、データベースの障害回復を容易にしながら、I /Oを分散させるために、ログファイルをデータファイルおよびインデックスデータファイルとは別のハードディスクに保存する必要があります。

2. tempdbデータベースは別々のディスクに別々に保存されています。

tempdbデータベースは他のすべてのデータベースが使用できる一時データベースです。索引付けされていない列に対してselect intoを使用してOrderbyを実行すると、中間データを格納するための一時テーブルがtempdbデータベースに生成されます。一時テーブルを作成してデータを追加すると、システムのパフォーマンスが著しく低下する可能性があるため、ソートする列には可能な限りインデックスを付けてください。同時に、tempdbデータベースはすべてのユーザーとアプリケーションによって共有されるため、1人のユーザーがtempdbデータベースのすべての領域を占有すると、他のデータベースは使用できなくなります。可能であれば、tempdbデータベースは高速のハードドライブまたはRAIDアレイに別々に配置する必要があります。パフォーマンスを向上させるために、tempdbデータベースから入出力操作を分離します。 tempdbデータベースには、ユーザーのニーズを満たすための適切な容量が必要です。 tempdbデータベースのスペースは自動的に大きくなるようにする必要があります。自動拡張を許可しないように設定されていると、照会操作によってtempdbデータベースの容量を超える一時表が確立されたときに、操作は完了しません。

tempdbデータベースの成長率を適切に設定する成長率が小さすぎると、より多くの外部デブリが発生し、より多くのリソースを占有します。

3.ホットデータの生成を避ける

SQL Server 7.0より前のバージョンでは、クラスタ化インデックスのないテーブル(ヒープテーブル)では、新しく挿入されたデータ行は常にディスクに配置されていました。最後に多数の同時ユーザーが存在し、同時にテーブルにデータを挿入または更新する操作を実行すると、非常にビジーなテーブルの最後にデータホットスポットを生成することが可能になります。同時I /O操作は少数のページに焦点を合わせているため、データベースのパフォーマンスが低下する可能性があります。

SQL Serverでは、新しいデータ行に対する物理記憶領域の割り当てはPFSページを介して行われます。 PFSページの管理アルゴリズムは、データホットスポットが生成されないように挿入操作を分散します。

アプリケーションやデータベースを設計するときは、熱いデータにつながる可能性がある、自然に成長する列に主キーを作成しないでください。

4.少ないデータ型

テーブルを設計するときは、できるだけ少ないデータ型を使用してください。ほとんどの情報はこのようなデータページに保存できます。データページが少なくなり、データページを取得するためのI /O操作が少なくなるため、効率が高くなります。

5.スペースデブリの監視と最適化

ファイルスペースの自動拡大は自動管理を向上させますが、スペースの断片化を招く可能性があります。物理空間とデータの論理空間はもはや連続的ではありません。定期的な監視とスペースの最適化により、I /Oパフォーマンスが向上します。

6.プライマリデータファイルとセカンダリデータファイルの使用

データベースごとに1つのプライマリデータファイルがプライマリファイルグループに属します。 1GB程度のデータベースであればデータファイルで十分ですが、セカンダリデータファイルがある場合は、メインデータファイルにセカンダリデータファイルを管理するためのポインタがあります。

複数のデータファイルを使用している場合、プライマリデータファイルはシステムオブジェクトとテーブルの格納に使用され、セカンダリデータファイルはユーザーデータとインデックスの格納に使用されます。可能であれば、プライマリとセカンダリのデータファイルを別々のディスクに別々に保存して、I /Oを分散させることができます。

複数のデータファイルを使用する場合は、プライマリデータファイルにシステムデータを格納し、セカンダリデータファイルにユーザーデータとインデックスを格納することをお勧めします。これにより、I /Oパフォーマンスが向上します。


7.ファイルグループによるパフォーマンスの向上

大規模データベースシステムでは、データファイルを管理するためのファイルグループを作成することを検討してください。テーブルとインデックスは、パフォーマンスの監視と比較のために異なる物理ディスクに保存され、最後に最適化されたストレージソリューションが得られます。

8.自動拡張と自動縮小によって発生する可能性があるパフォーマンスの問題に注意してください。

データベースファイルの自動拡大と自動縮小は、小規模なデータベースの管理に非常に役立ちます。しかし、大規模データベースではパフォーマンス上の問題が発生する可能性があります。ファイルの自然な成長により、ストレージの断片化が起こる可能性があります。ファイルスペースが大きくなると、新しく割り当てられたスペースは必ずしも元のスペースと連続しているとは限りません。ファイルスペースが縮小すると、スペースの一部が解放されます。ただし、ファイルが記憶領域を増やす必要があるが、もともと解放されていた領域を使用できない場合は、断片化も発生します。

9.システムデータとユーザーデータの分離

異なる物理ディスク上のシステムデータベースとユーザーデータベースの分離は、I /Oパフォーマンスの向上とデータベースのバックアップとリカバリの向上に役立ちます。 。

10.インデックスデザインの最適化

インデックスのデザインはデータベースのパフォーマンスにとって非常に重要です。詳しくは、このブログ関連記事を参照してください。

11.定期的な統計の更新

SQL Serverはデフォルトでコストベースの最適化を使用しているため、クエリの最適化には統計のタイムリーな更新が非常に重要です。

12.定期的な整合性チェック

定期的にデータベースの整合性をチェックし、データベースの整合性を確認します。

Copyright © Windowsの知識 All Rights Reserved