リストまたはライブラリには、最大 3,000 万個のアイテムまたはファイルを格納できます。 ただし、項目数が増えるにつれて、特定の操作に時間がかかることに気付く場合があります。 大規模なリストのフィルター処理されたビューの操作性は、他のリストの場合とあまり変わりません。 リスト ビューに 5,000 を超えるアイテムが表示される場合、リスト ビューのしきい値エラーが発生する可能性があります。 リスト ビューのしきい値 (LVT) である 5,000 アイテムを超えるリストまたはライブラリを持つサイトでは、サイト テンプレートの作成はブロックされます。 表示アイテムが多いビューの場合、モダン環境で最適に動作します。 クラシック エクスペリエンスで発生する可能性のあるエラーを回避するために、 モダン エクスペリエンスを使用することをお勧めします。
LVT 制限は、バックエンド データベースへのクエリを使用してすべてのユーザー間で一貫したパフォーマンスを得るために設定されています。 ここでは、その制限事項、しくみ、LVT の値の変更方法を示します。
5,000 という特別な数の意味
データベースの競合を最小限に抑えるために、SharePoint のバックエンド データベースである SQL Server では、多くの場合、行レベルのロックを戦略として使用して、他の行にアクセスしている他のユーザーに悪影響を与えることなく、正確な更新を保証します。 ただし、クエリなどのデータベースの読み書き操作で 5,000 以上の行が一度にロックされる場合、データベース操作が完了するまでテーブル全体にロックする方が SQL Server にとってより効率的となります。
注
実際の数は常に 5,000 ではなく、サイト、データベース内のアクティビティ量、サイトの構成によって異なる場合があります。
テーブル全体がロックされると、他のユーザーはテーブルにアクセスできなくなります。 これがあまりに頻繁に発生すると、ユーザーはシステム パフォーマンスが低下を訴えるようになります。 そのため、リソースを集中的に利用するデータベース操作の影響を最小限に抑え、全ユーザーのニーズのバランスを取るには、しきい値と上限が重要になります。
リストまたはライブラリの多数のアイテムにアクセスしたときに行われる処理
次の図は、リストまたはライブラリの多数のアイテムにアクセスしたときに、内部で行われる処理の重要な点をまとめたものです。
- サイト コレクション内のリストまたはライブラリ データは、クエリ、インデックス、ロックを使用して全体的なパフォーマンス、共有、精度を維持する SQL Server データベース テーブルに格納されます。
- 列のインデックスなどの操作を使ってフィルター処理されたビューによって、列や行の一部を特定し、その一部をコンピューターに返すデータベースのクエリが作成されます。
- 同時使用ユーザーが多数でも、しきい値と制限によって操作を調整し、リソースのバランスを取ることができます。
- 権限のある開発者は、SharePoint Server バージョンでオブジェクト モデルの上書きを使って、カスタム アプリケーションのしきい値と制限を一時的に上げることができます。
- 管理者は、SharePoint Server バージョンで、すべてのユーザーがオフピーク時に無制限に操作できるように、専用の時間枠を指定できます。
- インフォメーション ワーカーは、適切なビュー、スタイル、ページの制限を使って、ページのデータ表示速度を向上できます。
リソースの制限
リストとライブラリには、次の表のように、特定の上限があります。
| 機能 | 最大数 |
|---|---|
| リスト アイテムまたはライブラリ アイテムの数 | 3,000 万 |
| 個々のファイル アイテムまたはアイテムの添付のサイズ | 10 GB (ギガバイト) |
次の表では、注意が必要なリソースの制限に関する情報をまとめています。 これらの制限は、SharePoint Server バージョンの全体管理の [リソースの調整] で設定します。 サイトの特定の制限と要求については、管理者にお問い合わせください。
注
- 管理に役立つ場合、管理者は次のリソースの制限に従う必要はありません。
- すべての設定は UI で行うことができません。SharePoint Server バージョンでのみ実行できます。
| しきい値または制限 | 既定値 | 説明 |
|---|---|---|
| リスト ビューのしきい値 | 5,000 | クエリなどのデータベース操作で、同時に処理できるリスト アイテムまたはライブラリ アイテムの上限数を指定します。 この制限を超える操作はブロックされます。 代替計画を立てる時間を与えるために、リストが 3,000 アイテムを超えると、[リスト設定] ページに警告が表示される場合があります。 警告には、このトピックへのヘルプ リンクが表示されます。 |
| 固有のアクセス許可制限 | 50,000 | リストまたはライブラリに許容する固有のアクセス許可の上限を指定します。 アイテムまたはフォルダーのアクセス許可の継承を解除するたびに、この制限に対して 1 つの一意のアクセス許可としてカウントされます。 この制限を超える可能性があるアイテムを追加しようとすると、追加できなくなります。 メモ: リストまたはライブラリ内のアイテムの一意のアクセス許可のサポート制限は 50,000 です。 ただし、一般的な推奨制限は 5,000 です。 |
| 行サイズの制限 | 6 | リスト アイテムまたはライブラリ アイテムに使うデータベース内にあるテーブルの行数の上限を指定します。 多数の列がある幅が広いリストを調整するには、各アイテムを複数の内部的なテーブルの行 (最大 6 行、添付を除いて合計 8,000 バイトまで) にラップします。 たとえば、多くの小さな列を持つリストがあり、そのリストに数百個の Yes/No 列が含まれている場合、この制限を超える可能性があります。この場合、Yes/No 列をリストに追加することはできませんが、別の種類の列を追加できる場合があります。 管理者がこの制限を設定できるのは、ユーザー インターフェイス経由ではなく、オブジェクト モデルを使う場合のみです。 メモ: SharePoint Online では行の折り返しが使用されないため、この特定の制限は適用されません。 ただし、ストレージ サイズに基づいた列数には、最大 8,000 までの全体的な制限があります。 |
| リスト ビュー参照のしきい値 | 12 | 参照、ユーザー/グループ、ワークフローの状態列などに基づく結合について、結合操作の上限を指定します。 クエリで 8 つ以上の列が使用されている場合、操作はブロックされます。 ただし、オブジェクト モデルで設定できる最大表示を使用して、使用する列をプログラムで選択することは可能です。 |
| 監査者用と管理者用の [リスト ビューのしきい値] のサイズ | 20,000 | 適切なアクセス許可を持つ監査者または管理者が操作するときに、クエリなどのデータベース操作が同時に処理できるリスト アイテムまたはライブラリ アイテムの上限数を指定します。 この設定は、[オブジェクト モデルの上書きを許可する] と併用できます。 |
| オブジェクト モデルの上書きを許可する | Y | 開発者が、監査人と管理者のリスト ビューのしきい値で指定された上限へのリスト ビューしきい値のオーバーライドを要求するデータベース操作 (クエリなど) を実行できるかどうかを指定します。 管理者はオブジェクト モデルのオーバーライドを有効にする必要があります。その後、適切なアクセス許可を持つ開発者は、クエリで上位 LVT を使用してそれを利用するようにプログラムで要求できます。 |
| 時間帯 | なし | リソースのしきい値と制限を無視する時間枠を指定します。 管理者は、午後 6:00 から午後 10:00、午前 1:30 から午前 5:15 など、24 時間単位で "オフピーク" 時間帯の時間枠を構成できます。 この時間枠に開始されたデータベース操作またはクエリは、指定した時間枠内に完了しなくても、完了 (または失敗) まで続行されます。 |
リスト ビューのしきい値の制限の操作
SharePoint には、管理可能なデータおよびスループットの量を制御するリソースの制限があります。 LVT は、既定では約 5,000 アイテムであり、ユーザーが大きなリストで作業できつつも、良好なパフォーマンスを維持できるように設定されています。 SharePoint の場合、LVT 制限は変更できません。これは、共有テナントのユーザーがクエリで常に良好なパフォーマンスを維持できるように設定されています。 この制限の影響を受けずに済むよう、クエリを制限内に保つために行えるいくつかの操作を次に示します。
LVT 警告を受け取らずに SharePoint リストまたはライブラリを操作または照会する方法は多数あります。 次のアイデアを使用して、必要な情報を取得し、5,000 アイテム LVT 内に収まることができます。
- すべてのバージョンの SharePoint で、インデックス作成、フィルター処理、フォルダー、オフライン データ、検索ボックス、個人用ビュー、リレーショナル リスト、RSS フィードを使用して、返されるアイテムの数を管理します。
- SharePoint のサーバー バージョン: 管理者がスケジュールした時間帯を使用できます。この上限は上げられています。
- SharePoint のサーバー バージョンの場合、SharePoint Server 管理者は、より高コストな操作を許可するように設定を調整できます。 詳細については、こちらを参照してください。
すべての SharePoint バージョンにおけるこれらのアプローチの詳細については こちらを参照してください、SharePoint Server のバージョンについては こちらを参照してください。 多数のルックアップ列を持つリスト フォームの操作の詳細については 、こちらを参照してください。