前の質問 で、既存の(プライマリ)ファイルグループに「ファイル」を追加して、DBのディスクスペースを簡単に追加するよう提案されました。
だから私はそれをしました、そして、何も壊れませんでした。
しかし、SQL Serverがデータを元のファイルに書き込むのをやめて、新しいファイルにデータを書き始めるタイミングがいつになるかわかりません。
@ davidbrowneの私の質問に対する優れた答え から、彼は次のように述べました:
SQL Serverは、ファイルグループに複数のファイルがある場合、「比例充填アルゴリズム」を使用します。
わかりました。すばらしいですが、他のファイルへの書き込みを開始するのはいつですか
現在、これは私が設定したものです...そして最大ファイルサイズに注意してください。
SQL Serverが次の(新しい)ファイルの使用をいつ開始するかを「知る」のに役立つ元のファイルの最大ファイルサイズ(たとえば、LIMITから1T)を指定する必要がありますか?
現在、ディスクに19 GBが残っていますF:\
。
やるべきことのカップル。まず、XWing_ExtraDataにスペースを事前に割り当てる必要があります。自動拡張ごとに10MBで、SQLがディスク上のファイルを拡張する必要があるときはいつでも、多くの外部ファイルの断片化と遅延が発生します(事前にサイズの大きいファイルを事前に用意しておくとパフォーマンスが向上します)。次に、XWingで自動拡張を無効にして、それ以上拡張できないようにします。そうしないと、SQLは領域が不足するまでファイルを入力し続け、1105エラー(ファイルグループがいっぱい)をトリガーします。
比例充填は、各ファイルの空き領域の量に基づいています。
たとえば、ファイルグループにfile1とfile2の2つのファイルがあり、file1の空き領域が1 GB、file2の空き領域が2 GBの場合、ファイルグループへの書き込みの66%がfile2に書き込まれ、33%が書き込まれますファイル1。
プロポーショナルフィルを機能させるには、ファイルグループ内のすべてのファイルを同じサイズにプリサイズする必要があります。これにより、各ファイルの空き領域の量は、必要な書き込みの比率を反映します。 XWingファイルはいっぱいですか?
その場合、XWing_ExtraDataのサイズをXWingに割り当てられたスペースの50%をわずかに超える大きさに変更し、DBCC SHRINKFILE
を使用してXWingファイルを同じサイズに縮小します。これにより、元のファイルから新しいファイルにデータが移動します。縮小はデータを断片化する傾向があるため、後でファイルグループに格納されたインデックスを最適化することもできます。
DBCC SHRINKFILEの詳細については、 Microsoft Docs を参照してください。
MattyzDBA が回答で述べたように、データファイルの最大ファイルサイズを設定する必要があります。また、ローカルセキュリティポリシーアプレットを通じてSQL Serverサービスアカウントに「ボリュームメンテナンスタスクの実行」権限を付与していると仮定して、おそらく1GB程度のまともな自動拡張量を設定する必要があります。その設定の詳細については this を参照してください。ファイルの事前サイズ設定と適切な自動拡張設定の設定は、「ベストプラクティス」と広く見なされています。