SharePoint On-Premises is a robust and flexible content management platform widely used for document management, collaboration, and business process automation. However, like any enterprise system, it comes with its own set of limitations designed to maintain stability, performance, and security. Understanding these boundaries is essential for architects, administrators, and developers to design scalable and efficient solutions.
In this blog, we’ll dive into the key limitations of SharePoint On-Premises, explore the challenges they present, and share best practices to help you navigate them effectively. We’ll also compare these limits with SharePoint Online and provide references for further reading.
✅ 1. Storage Limits
Storage capacity in SharePoint On-Premises is directly influenced by the underlying SQL Server infrastructure and the physical or virtual server environment. Unlike SharePoint Online, which benefits from Microsoft’s cloud scalability, on-premises environments have finite storage tied to the server hardware and disk space.
- Database Size:
Each SharePoint content database can grow up to 200 GB for optimal performance. While SharePoint technically supports content databases as large as 4 TB, exceeding the 200 GB threshold can lead to performance degradation. Large databases result in slower query performance, increased backup and restore times, and greater risk of data corruption or recovery issues. Microsoft recommends keeping databases smaller to ensure faster disaster recovery and efficient maintenance operations. - Site Collection Storage:
There is no explicit limit on the size of a site collection in SharePoint On-Premises, but it is recommended to keep individual site collections below 100 GB. This is because larger site collections can cause slower rendering of pages and increase the time required for backups and restores. Keeping site collections smaller also simplifies maintenance and reduces the impact of data corruption. - File Upload Limit:
By default, SharePoint On-Premises has a 2 GB file upload size limit. However, this can be increased to 10 GB by modifying the web application settings in Central Administration or PowerShell. While larger file sizes are supported, they can significantly impact performance, especially if users frequently upload large media files. Uploading larger files also increases the likelihood of timeouts and incomplete uploads, which can frustrate end users.
💡 Best Practice:
- Split large content databases into multiple, smaller databases to optimize performance and ensure faster recovery.
- Implement retention and archiving policies to reduce database growth.
- Compress large files before uploading them to SharePoint and use file-level versioning to avoid unnecessary database bloat.
📊 2. List and Library Limits
SharePoint lists and libraries form the backbone of content management, but they have limitations designed to prevent SQL performance bottlenecks. When lists or libraries grow too large, they can cause slow load times, timeouts, and errors when querying data.
- List View Threshold:
SharePoint enforces a 5,000-item threshold per view to prevent SQL Server from executing resource-intensive queries. When this limit is exceeded, you may experience errors such as “The attempted operation is prohibited because it exceeds the list view threshold.” This threshold exists to prevent long-running queries that could impact farm performance.
However, this limit applies only to the number of items displayed in a single view, not the total list size. A list can contain millions of items, but you need to use indexed columns, filtered views, or folders to avoid crossing the threshold. - Row Size Limit:
Each row in a SharePoint list is limited to 8,000 bytes (excluding binary large objects or BLOBs). This means if your list contains multiple large columns, you may hit the row size limit before reaching the item limit. The 256-column maximum for a list ensures that each row remains within the database row size constraints. - Lookup Column Threshold:
SharePoint On-Premises supports up to 8 lookup columns in a list view. Exceeding this threshold can significantly slow down list rendering and cause query performance issues, as each lookup requires an additional database join, adding overhead to the query execution.
💡 Best Practice:
- Use indexed columns to improve query performance on large lists.
- Apply list filters and folders to reduce the number of items returned in a view.
- Use PowerShell scripts to monitor and clean up large lists regularly.
- Consider splitting oversized lists into multiple smaller lists or libraries.
⚙️ 3. Service Application Limits
SharePoint On-Premises uses service applications to manage enterprise-level functionalities such as search, user profiles, and metadata. Each service application comes with its own set of boundaries that influence scalability and performance.
- Search Service Application:
SharePoint’s Search Service allows crawling and indexing of content, but it has practical limitations:- A single content source can contain up to 20 million items.
- The search index can accommodate 100 million items in total.
- The average crawl rate is approximately 10 documents per second, but this can vary based on farm configuration and content complexity.
Large search indexes require significant SQL and server resources. Crawling large content sources can strain the system, slowing down content updates and impacting search query performance.
- User Profile Service:
The User Profile Service manages user data and synchronization with external directories (e.g., Active Directory). It supports:- Up to 2 million user profiles.
- 100,000 groups during sync operations.
- 50 properties per profile.
Exceeding these limits can cause sync failures, slow profile rendering, and increase SQL server load.
💡 Best Practice:
- Use incremental crawls instead of full crawls to reduce the impact on performance.
- Optimize the Search Topology by distributing index partitions across multiple servers.
- Limit the frequency of user profile syncs during peak business hours.
🔒 4. Security and Permissions Limits
Effective permission management is essential for a secure SharePoint environment, but SharePoint On-Premises imposes practical boundaries.
- Unique Permissions per List/Library:
You can assign up to 50,000 unique permissions per list or library. When you exceed this limit, performance can degrade significantly, causing page load delays and errors when accessing items with unique permissions. - SharePoint Groups:
A SharePoint site collection can contain up to 10,000 groups. Managing large numbers of groups can become complex, making it harder to maintain consistent security policies. - Users per Site Collection:
SharePoint supports up to 2 million users per site collection. However, large numbers of users can slow down user management operations and permission checks.
💡 Best Practice:
- Use group-based permissions instead of individual permissions to reduce complexity and improve performance.
- Regularly audit and clean up inactive groups.
- Avoid breaking inheritance excessively, as it increases the risk of performance issues.
🔧 5. Workflow and Timer Job Limits
SharePoint workflows and timer jobs automate processes, but they are subject to concurrency and execution limits.
- Concurrent Workflow Instances:
SharePoint allows up to 15 concurrent workflows per content database. If you have complex workflows running simultaneously, it may lead to performance degradation and delayed executions. - Timer Job Frequency:
Timer jobs execute background tasks (e.g., content cleanup, search index propagation) at scheduled intervals. The minimum frequency is 1 minute, but complex or long-running jobs can delay subsequent executions, affecting the responsiveness of scheduled tasks.
💡 Best Practice:
- Use PowerShell scripts to monitor and optimize workflow performance.
- Avoid nesting workflows to reduce the number of concurrent instances.
- Schedule timer jobs during off-peak hours to reduce the impact on user performance.
📚 References
- SharePoint On-Premises Capacity and Limits
- SharePoint Online Limits
- SharePoint Server Architecture and Scalability
Understanding SharePoint On-Premises limits is essential for building a scalable, reliable, and high-performing environment. By adhering to best practices, you can prevent performance issues, ensure smooth operations, and create a more efficient collaboration platform. Proper planning and regular maintenance will help you maximize SharePoint’s potential while avoiding common pitfalls.
AD Groups Authentication Automation Backup Compliance Content Type CSS DocumentSet Flows Google GULP Javascript Levels Limitations Metadata MFA Microsoft Node NodeJs O365 OneDrive Permissions PnP PnPJS Policy Power Automate PowerAutomate PowerShell React ReactJs Rest API Rest Endpoint Send an HTTP Request to SharePoint SharePoint SharePoint Groups SharePoint List SharePoint Modern SharePoint Online SPFX SPO Sync Tags Teams Termstore Versioning