SlideShare a Scribd company logo
cis
October 2013
Jeroen
Schoenmakers
N E W H O R I Z O N S
SharePoint Performance
Who am I ?
 Jeroen Schoenmakers aka
 @Shuwi
 Linked in
 15 years SQL DBA & .NET Dev experience
 5 Years SharePoint experience
 MCITP,MCTS
 http://Schoennie.BlogSpot.com
Agenda (Slides will be available)
 Who am I
 Setting up SharePoint, performance gains
 Preventing future performance issues
 Optimize your current deployment
 Trouble-Shooting SharePoint Performance issues
 When do you have an issue ?
 How to solve the issue ? (Methodology)
 Case: Extremely slow uploads on extranet
How SharePoint uses SQL Server
 One configuration DB per farm
 Each web app has one or more content DBs
 Container for site collections (scalable, SharePoint limits)
 All SharePoint content, including files, is stored in content DB
(Out of the box)
 Service application databases
 Search databases are usually most important when optimizing.
Example: Ivanhoe Production Farm (intranet)
 Use master; select name from sys.databases
64 Databases
Database size = (#Documents *
#Versions) * Avg Size) + (10 KB * (#List
items + (#Versions * #Documents)))
<<Graphic is removed from a public disclosure point of view>>
Choose the best architecture (for your situation)
 Everything “depends” on your situation
 1000 concurrent anonymous clients making web-purchases (SSL) VS
10 concurrent clients downloading content (videos / documents) VS
100 concurrent internal users looking for content etc.
 Sql is doing nothing and WFE is at 100% VS
WFE is sharing it‟s capacity with the SQL proving content CS
APP Server is sharing capacity with the SQL index & crawl
databases.
 All the memory, processors and
SSD drives in the world can‟t make
up for a bad architecture.
Scaling out for performance
 For large, high-performance farms, scale out to multiple SQL Servers
 No limit to the number of servers – each database can have its own
 Best practice is to break out across some logical boundary (web app,
service apps, etc. )
 Using clustered SQL servers ?
 Consider using instances and make each instance active on a
separate physical node
SharePoint Performance
Optimize the DB Server (1)
 Request separate drives for:
 Log-files
 Data-files
 TempDB files
 Do not run non-SQL apps on SQL Server
 Dedicate SQL Server to one SharePoint Farm
 If virtualizing
 Virtualize WFE and APP servers first
 SQL can be virtualized, but it will affect performance (negatively)
Optimize the DB Server (2) + demo
 Determine maximum memory
 Set fill factor to 80 (only for SP!) + TechNet
 Turn on backup compression
 Set MAXDOP to 1
 Is now mandatory in SP2013
 SP Automatic Install AutoSPInstaller Link
 Repeatable (Test -> Production)
 Customizable (DB Names, Service App Names etc).
Optimize the SQL Instance
 Adjust database default locations
 Never place on C: drive
 Log and data on separate LUNs/physical disks
 Test the disks you get offered !
 Configure antivirus software to skip LDF/MDF/NDF files
 Adjust server memory settings if running multiple instances
 Use 64KB allocation units when formatting data and log partitions
 You can still do this now! , but it involves some downtime (Up to 50%
io performance gains measured !!) Many more!
Optimizing tempdb + DEMO
 Pre-size – set to 25% of largest DB
 Use simple recovery model
 Use AutoGrow of ~ 100MB – if growing, increase initial size
 DB Files
 Each file on separate LUN, if possible
 Store log on its own LUN
 Use RAID 1+0 or Raid 10 (local drives)
 TechNet SQL Server best practices (2007..)
Technet: Best practices for SQL in SP (2013..)
Ref
When working with a SharePoint DB
 Do not do any of following
 Do not add, change or remove any built-in objects
(tables, views, stored procedures, triggers, indexes)
 Do not directly select from tables or views
 Do not change the database collation
 Some 3rd party apps will do this automatically ! Hence: keep
SharePoint DB just for SharePoint
Optimizing content DBs
 Very active content DBs should be placed on their own LUNs
 Use RAID 5 or RAID 1+0
 In most cases, keep size <200 GB
 Why ? Recovering and performance reasons
 Use site collection quotas
 Don‟t forget about the 2nd stage recycle bin
 Use PowerShell to create site collections in their own specific content
DB (separation of content)
Why are larger DBs slower ?
 Read queries take longer
 More rows to filter, group and sort
 Write queries take longer
 Increased lock contention
 Causes more blocking
 More data, but data cache same size
 DB maintenance takes longer
 Reindex
 Dbcc checkdb
Achieving storage performance
 Storage array (RAID 1+0)
 10x 300 GB SAS drives, 15k RPM
 1.5 TB effective space
 ~1500 IOPS = 1.0 IOPS/GB
 Set of drives (RAID 1+0)
 4x 750 GB SATA drives, 10k RPM
 1.5 TB effective space
 ~300 IOPS = 0.2 IOPS/GB
Achieving storage performance (SSD)
 Set of drives (RAID 5)
 4x 480 GB Intel 520 SSD drives
 1.44 TB effective space
 ~133.000 IOPS = 92.36 IOPS/GB
 IOPS Are A Scam (Brent Ozar)
 Use SQLIO and compare the advertised numbers with real world
numbers.
When the sysadmin brags about SSD RAID 0 speed
Optimizing Search DBs
 Max of 25 million items per each crawl and property DB
 Store crawl and property DBs on separate, dedicated LUNs
 Add data files to match Content DBs
 Use RAID 1+0 storage
Agenda
 Who am I
 Setting up SharePoint, performance gains
 Preventing future performance issues
 Optimize your current deployment
 Trouble-Shooting SharePoint Performance issues
 When do you have an issue ?
 How to solve the issue ? (Methodology)
 Case: Extremely slow uploads on extranet
Reindexing DBs
 Fragmentation happens by design – primary key uses GUID columns
 Indexes are rebuilt daily as part of health analyzer job*
 No manual reindex needed
 Do not drop and recreate indexes
 Do not alter “auto create statistics” settings (!)
 * Make sure you run SharePoint on the latest CU, there are issues with
the SharePoint jobs in old releases.
RBS Guidance (Remote BLOB Storage)
 Consider using in document-heavy databases
 Trade off
 Storage costs & performance benefits versus
 More complex architecture (support, DR, HA)
 Consider third party providers
 More full-featured solutions
 In general
 Do not externalize documents < 1MB
 Ideal number varies widely
When I fail over to the DR site for the
first time
Best Practices
 Use SQL Enterprise edition for best performance
 Backup logs regularly to prevent runaway log files
 Do not use autoshrink
 Shrink manually only when needed
 Do not use multiple file groups
 Not supported by SharePoint
 Run database integrity checks ! (DBCC CheckDB)
 Use Instant File Initialization
 Database Maintenance For SharePoint Tips + Technet article
Agenda
 Who am I
 Setting up SharePoint, performance gains
 Preventing future performance issues
 Optimize your current deployment
 Trouble-Shooting SharePoint Performance issues
 When do you have an issue ?
 How to solve the issue ? (Methodology)
 Case: Extremely slow uploads on extranet
Top reasons for a Slow SharePoint (1)
 The recovery model for the content database is set to full by default.
(SQL)
 Search indexing, if it kicks in, consumes resources that you might need
on your WFEs and SQL Servers for processing of requests. (SQL + WFE
/ APP)
 Anti-virus software, if it is scanning every document that is uploaded, or
is scanning the database or BLOB storage directly, it can slow things
down tremendously. (APP+OS)
 BLOB storage can affect performance – for better or worse. (SQL +
Storage)
 Database growth sizing (SQL)
ref
Top reasons for a Slow SharePoint (2)
 The WFE can be a bottleneck (wrong load-balance settings SP farm)
(WFE)
 Connection between WFE & SQL (Network)
 An avalanche of large media (Videos, PowerPoints, ZIP files)
 Old and unused files hogging valuable SQL Server storage
 Lack of scalability
ref
Trouble Shooting Performance Issues
 Method of trouble shooting
 Shotgun methodology
 Happy clicking – no purpose without any specific order
 Doing the first thing your search engine tells you to do (in
production, without understanding)
 Throwing the toolbox at the problem – trying everything whether
or not it makes sense
 If lucky, you find a solution you can‟t explain, reproduce or
understand
When I troubleshoot with the shotgun methodology
and it backfires (HT @Mike_Walsh)
Trouble Shooting Performance Issues
 Method of trouble shooting
 Using a trouble shooting pattern (borrowed from ER)
- Gather initial information
- Prepare your mind
- Work as a team
- Plan your attack
- Don‟t be afraid of asking for help
- Formulate a problem statement and verify it with all parties!
- Remain calm
- Understand priority and if the issue is stable or declining
- Anticipate changes and plan ahead for worsening
- Use all of the information available
- Documentation
- Clean up and preparation for next call
Trouble Shooting Be Careful!
 Always be cautious in live / production environments
 Try to re-produce the issue in test environment
 You might be in for a bit more than just a „performance‟ issue
 Things might blow-up very quickly !
Case: Triage SharePoint Performance Issue
= ~ 30 Minutes

Case: Triage SharePoint Performance Issue
 Looking at the indicators
 Using the toolbox to see what‟s going on.
Case: Triage SharePoint Performance Issue
 Install Sp_AskBrent
Case: Triage SharePoint Performance Issue
Thank You !
Don’t
Do it!
http://Schoennie.blogspot.com
Optimizing SQL 2008 for SP
SharePoint Performance TroubleShooting
http://dbareactions.tumblr.com/
When the Microsoft sales rep hears me
questioning whether anybody’s really on
Azure

More Related Content

PPTX
The SharePoint & jQuery Guide
PPTX
SEF2013 - Create a Business Solution, Step by Step, with No Managed Code
PPTX
SEF2013 - A jQuery Primer for SharePoint
PPTX
SharePoint & jQuery Guide - SPSTC 5/18/2013
PPTX
Content by query web part
PPTX
Getting The Most Out Of SP Search SPSTC
PDF
How to build your own Delve: combining machine learning, big data and SharePoint
PPTX
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
The SharePoint & jQuery Guide
SEF2013 - Create a Business Solution, Step by Step, with No Managed Code
SEF2013 - A jQuery Primer for SharePoint
SharePoint & jQuery Guide - SPSTC 5/18/2013
Content by query web part
Getting The Most Out Of SP Search SPSTC
How to build your own Delve: combining machine learning, big data and SharePoint
2/15/2012 - Wrapping Your Head Around the SharePoint Beast

What's hot (20)

PPTX
SPTechCon - Share point and jquery essentials
PPTX
SPSDenver - SharePoint & jQuery - What I wish I would have known
PPTX
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
PPTX
SharePoint Saturday St. Louis - SharePoint & jQuery
PPTX
SPSBE building an faq for end users
PPTX
The SharePoint & jQuery Guide - Updated 1/14/14
PPTX
SharePoint & jQuery Guide - SPSNashville 2014
PPTX
Introduction To Microsoft SharePoint 2013
PPTX
SharePoint and the User Interface with JavaScript
PPTX
Spsbe 18-04-15 - should i move my network folders to office 365
 
PPTX
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
PPTX
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
PPTX
SPTechCon DevDays - SharePoint & jQuery
PPTX
Search-Driven Applications with SharePoint 2013 (#SBSBE16)
PPTX
SPSNH 2014 - The SharePoint & jQueryGuide
PPT
Automating SQL Server Database Creation for SharePoint
PPTX
Bringing HTML5 alive in SharePoint
PPTX
SharePoint 2013 Content search web part - Get it all in one place and style it!
PPTX
What's New and Different in SharePoint 2013
PPTX
SharePoint 2010 - User Profile Store
SPTechCon - Share point and jquery essentials
SPSDenver - SharePoint & jQuery - What I wish I would have known
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
SharePoint Saturday St. Louis - SharePoint & jQuery
SPSBE building an faq for end users
The SharePoint & jQuery Guide - Updated 1/14/14
SharePoint & jQuery Guide - SPSNashville 2014
Introduction To Microsoft SharePoint 2013
SharePoint and the User Interface with JavaScript
Spsbe 18-04-15 - should i move my network folders to office 365
 
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
SPTechCon DevDays - SharePoint & jQuery
Search-Driven Applications with SharePoint 2013 (#SBSBE16)
SPSNH 2014 - The SharePoint & jQueryGuide
Automating SQL Server Database Creation for SharePoint
Bringing HTML5 alive in SharePoint
SharePoint 2013 Content search web part - Get it all in one place and style it!
What's New and Different in SharePoint 2013
SharePoint 2010 - User Profile Store
Ad

Viewers also liked (15)

PPTX
The outer and inner factors of change and sales
PDF
The Sales vs. Quality vs. Cost Challenge and How to Win At It
PDF
MeasureWorks - sell Why, not How
PDF
MeasureWorks - 5 insights for speed(y) experiments
PPS
Operations vs sales
PPTX
MIT Sales Bootcamp II
PPT
Team I - Markstrat Final Presentation at UC Davis
PPTX
Retail planning and merchandizing analytics
PDF
BOBCM: Best of Branded Content Marketing 2015 D&AD Edition
PPTX
Production Planning and Control
PPTX
Organizational structure ppt
PPT
Organizational Structure
PDF
Forms of Business Organizations
PPTX
Forms of business organisations
PPT
SAP Production Planning
The outer and inner factors of change and sales
The Sales vs. Quality vs. Cost Challenge and How to Win At It
MeasureWorks - sell Why, not How
MeasureWorks - 5 insights for speed(y) experiments
Operations vs sales
MIT Sales Bootcamp II
Team I - Markstrat Final Presentation at UC Davis
Retail planning and merchandizing analytics
BOBCM: Best of Branded Content Marketing 2015 D&AD Edition
Production Planning and Control
Organizational structure ppt
Organizational Structure
Forms of Business Organizations
Forms of business organisations
SAP Production Planning
Ad

Similar to SharePoint Performance (20)

PDF
Introduction to SharePoint for SQLserver DBAs
PPTX
SharePoint Intelligence Real World Business Workflow With Share Point Designe...
PPT
Large Scale SQL Considerations for SharePoint Deployments
PPTX
SPSMadrid Get sql spinning with SharePoint. Best practice for the back end
PPTX
Espc17 make your share point fly by tuning and optimising sql server
PPTX
Make your SharePoint fly by tuning and optimizing SQL Server
PPTX
What SQL DBA's need to know about SharePoint-St. Louis 2013
PPTX
Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the...
PDF
Boost the Performance of SharePoint Today!
PDF
SharePoint Saturday The Conference 2011 - SP2010 Performance
PPTX
What SQL DBAs need to know about SharePoint-Indianapolis 2013
PPTX
SharePoint Saturday St. Louis 2014: What SharePoint Admins need to know about...
PPTX
SPS Kansas City: What SharePoint Admin need to know about SQL
PPTX
What SQL DBA's need to know about SharePoint
PPTX
What SharePoint Admins need to know about SQL-Cinncinati
PPTX
Real world business workflow with SharePoint designer 2013
PPTX
How_To_Soup_Up_Your_Farm
PDF
SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...
PDF
SharePoint Saturday San Antonio: SharePoint 2010 Performance
PPT
Sql And Storage Considerations For Share Point Server 2010
Introduction to SharePoint for SQLserver DBAs
SharePoint Intelligence Real World Business Workflow With Share Point Designe...
Large Scale SQL Considerations for SharePoint Deployments
SPSMadrid Get sql spinning with SharePoint. Best practice for the back end
Espc17 make your share point fly by tuning and optimising sql server
Make your SharePoint fly by tuning and optimizing SQL Server
What SQL DBA's need to know about SharePoint-St. Louis 2013
Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the...
Boost the Performance of SharePoint Today!
SharePoint Saturday The Conference 2011 - SP2010 Performance
What SQL DBAs need to know about SharePoint-Indianapolis 2013
SharePoint Saturday St. Louis 2014: What SharePoint Admins need to know about...
SPS Kansas City: What SharePoint Admin need to know about SQL
What SQL DBA's need to know about SharePoint
What SharePoint Admins need to know about SQL-Cinncinati
Real world business workflow with SharePoint designer 2013
How_To_Soup_Up_Your_Farm
SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...
SharePoint Saturday San Antonio: SharePoint 2010 Performance
Sql And Storage Considerations For Share Point Server 2010

Recently uploaded (20)

PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Introduction to Artificial Intelligence
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
System and Network Administration Chapter 2
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Transform Your Business with a Software ERP System
PPTX
L1 - Introduction to python Backend.pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Digital Strategies for Manufacturing Companies
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
AI in Product Development-omnex systems
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PTS Company Brochure 2025 (1).pdf.......
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Introduction to Artificial Intelligence
Design an Analysis of Algorithms II-SECS-1021-03
System and Network Administration Chapter 2
Understanding Forklifts - TECH EHS Solution
Transform Your Business with a Software ERP System
L1 - Introduction to python Backend.pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
How to Choose the Right IT Partner for Your Business in Malaysia
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Digital Strategies for Manufacturing Companies
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
AI in Product Development-omnex systems

SharePoint Performance

  • 1. cis October 2013 Jeroen Schoenmakers N E W H O R I Z O N S SharePoint Performance
  • 2. Who am I ?  Jeroen Schoenmakers aka  @Shuwi  Linked in  15 years SQL DBA & .NET Dev experience  5 Years SharePoint experience  MCITP,MCTS  http://Schoennie.BlogSpot.com
  • 3. Agenda (Slides will be available)  Who am I  Setting up SharePoint, performance gains  Preventing future performance issues  Optimize your current deployment  Trouble-Shooting SharePoint Performance issues  When do you have an issue ?  How to solve the issue ? (Methodology)  Case: Extremely slow uploads on extranet
  • 4. How SharePoint uses SQL Server  One configuration DB per farm  Each web app has one or more content DBs  Container for site collections (scalable, SharePoint limits)  All SharePoint content, including files, is stored in content DB (Out of the box)  Service application databases  Search databases are usually most important when optimizing.
  • 5. Example: Ivanhoe Production Farm (intranet)  Use master; select name from sys.databases 64 Databases Database size = (#Documents * #Versions) * Avg Size) + (10 KB * (#List items + (#Versions * #Documents))) <<Graphic is removed from a public disclosure point of view>>
  • 6. Choose the best architecture (for your situation)  Everything “depends” on your situation  1000 concurrent anonymous clients making web-purchases (SSL) VS 10 concurrent clients downloading content (videos / documents) VS 100 concurrent internal users looking for content etc.  Sql is doing nothing and WFE is at 100% VS WFE is sharing it‟s capacity with the SQL proving content CS APP Server is sharing capacity with the SQL index & crawl databases.  All the memory, processors and SSD drives in the world can‟t make up for a bad architecture.
  • 7. Scaling out for performance  For large, high-performance farms, scale out to multiple SQL Servers  No limit to the number of servers – each database can have its own  Best practice is to break out across some logical boundary (web app, service apps, etc. )  Using clustered SQL servers ?  Consider using instances and make each instance active on a separate physical node
  • 9. Optimize the DB Server (1)  Request separate drives for:  Log-files  Data-files  TempDB files  Do not run non-SQL apps on SQL Server  Dedicate SQL Server to one SharePoint Farm  If virtualizing  Virtualize WFE and APP servers first  SQL can be virtualized, but it will affect performance (negatively)
  • 10. Optimize the DB Server (2) + demo  Determine maximum memory  Set fill factor to 80 (only for SP!) + TechNet  Turn on backup compression  Set MAXDOP to 1  Is now mandatory in SP2013  SP Automatic Install AutoSPInstaller Link  Repeatable (Test -> Production)  Customizable (DB Names, Service App Names etc).
  • 11. Optimize the SQL Instance  Adjust database default locations  Never place on C: drive  Log and data on separate LUNs/physical disks  Test the disks you get offered !  Configure antivirus software to skip LDF/MDF/NDF files  Adjust server memory settings if running multiple instances  Use 64KB allocation units when formatting data and log partitions  You can still do this now! , but it involves some downtime (Up to 50% io performance gains measured !!) Many more!
  • 12. Optimizing tempdb + DEMO  Pre-size – set to 25% of largest DB  Use simple recovery model  Use AutoGrow of ~ 100MB – if growing, increase initial size  DB Files  Each file on separate LUN, if possible  Store log on its own LUN  Use RAID 1+0 or Raid 10 (local drives)  TechNet SQL Server best practices (2007..) Technet: Best practices for SQL in SP (2013..) Ref
  • 13. When working with a SharePoint DB  Do not do any of following  Do not add, change or remove any built-in objects (tables, views, stored procedures, triggers, indexes)  Do not directly select from tables or views  Do not change the database collation  Some 3rd party apps will do this automatically ! Hence: keep SharePoint DB just for SharePoint
  • 14. Optimizing content DBs  Very active content DBs should be placed on their own LUNs  Use RAID 5 or RAID 1+0  In most cases, keep size <200 GB  Why ? Recovering and performance reasons  Use site collection quotas  Don‟t forget about the 2nd stage recycle bin  Use PowerShell to create site collections in their own specific content DB (separation of content)
  • 15. Why are larger DBs slower ?  Read queries take longer  More rows to filter, group and sort  Write queries take longer  Increased lock contention  Causes more blocking  More data, but data cache same size  DB maintenance takes longer  Reindex  Dbcc checkdb
  • 16. Achieving storage performance  Storage array (RAID 1+0)  10x 300 GB SAS drives, 15k RPM  1.5 TB effective space  ~1500 IOPS = 1.0 IOPS/GB  Set of drives (RAID 1+0)  4x 750 GB SATA drives, 10k RPM  1.5 TB effective space  ~300 IOPS = 0.2 IOPS/GB
  • 17. Achieving storage performance (SSD)  Set of drives (RAID 5)  4x 480 GB Intel 520 SSD drives  1.44 TB effective space  ~133.000 IOPS = 92.36 IOPS/GB  IOPS Are A Scam (Brent Ozar)  Use SQLIO and compare the advertised numbers with real world numbers. When the sysadmin brags about SSD RAID 0 speed
  • 18. Optimizing Search DBs  Max of 25 million items per each crawl and property DB  Store crawl and property DBs on separate, dedicated LUNs  Add data files to match Content DBs  Use RAID 1+0 storage
  • 19. Agenda  Who am I  Setting up SharePoint, performance gains  Preventing future performance issues  Optimize your current deployment  Trouble-Shooting SharePoint Performance issues  When do you have an issue ?  How to solve the issue ? (Methodology)  Case: Extremely slow uploads on extranet
  • 20. Reindexing DBs  Fragmentation happens by design – primary key uses GUID columns  Indexes are rebuilt daily as part of health analyzer job*  No manual reindex needed  Do not drop and recreate indexes  Do not alter “auto create statistics” settings (!)  * Make sure you run SharePoint on the latest CU, there are issues with the SharePoint jobs in old releases.
  • 21. RBS Guidance (Remote BLOB Storage)  Consider using in document-heavy databases  Trade off  Storage costs & performance benefits versus  More complex architecture (support, DR, HA)  Consider third party providers  More full-featured solutions  In general  Do not externalize documents < 1MB  Ideal number varies widely When I fail over to the DR site for the first time
  • 22. Best Practices  Use SQL Enterprise edition for best performance  Backup logs regularly to prevent runaway log files  Do not use autoshrink  Shrink manually only when needed  Do not use multiple file groups  Not supported by SharePoint  Run database integrity checks ! (DBCC CheckDB)  Use Instant File Initialization  Database Maintenance For SharePoint Tips + Technet article
  • 23. Agenda  Who am I  Setting up SharePoint, performance gains  Preventing future performance issues  Optimize your current deployment  Trouble-Shooting SharePoint Performance issues  When do you have an issue ?  How to solve the issue ? (Methodology)  Case: Extremely slow uploads on extranet
  • 24. Top reasons for a Slow SharePoint (1)  The recovery model for the content database is set to full by default. (SQL)  Search indexing, if it kicks in, consumes resources that you might need on your WFEs and SQL Servers for processing of requests. (SQL + WFE / APP)  Anti-virus software, if it is scanning every document that is uploaded, or is scanning the database or BLOB storage directly, it can slow things down tremendously. (APP+OS)  BLOB storage can affect performance – for better or worse. (SQL + Storage)  Database growth sizing (SQL) ref
  • 25. Top reasons for a Slow SharePoint (2)  The WFE can be a bottleneck (wrong load-balance settings SP farm) (WFE)  Connection between WFE & SQL (Network)  An avalanche of large media (Videos, PowerPoints, ZIP files)  Old and unused files hogging valuable SQL Server storage  Lack of scalability ref
  • 26. Trouble Shooting Performance Issues  Method of trouble shooting  Shotgun methodology  Happy clicking – no purpose without any specific order  Doing the first thing your search engine tells you to do (in production, without understanding)  Throwing the toolbox at the problem – trying everything whether or not it makes sense  If lucky, you find a solution you can‟t explain, reproduce or understand When I troubleshoot with the shotgun methodology and it backfires (HT @Mike_Walsh)
  • 27. Trouble Shooting Performance Issues  Method of trouble shooting  Using a trouble shooting pattern (borrowed from ER) - Gather initial information - Prepare your mind - Work as a team - Plan your attack - Don‟t be afraid of asking for help - Formulate a problem statement and verify it with all parties! - Remain calm - Understand priority and if the issue is stable or declining - Anticipate changes and plan ahead for worsening - Use all of the information available - Documentation - Clean up and preparation for next call
  • 28. Trouble Shooting Be Careful!  Always be cautious in live / production environments  Try to re-produce the issue in test environment  You might be in for a bit more than just a „performance‟ issue  Things might blow-up very quickly !
  • 29. Case: Triage SharePoint Performance Issue = ~ 30 Minutes

  • 30. Case: Triage SharePoint Performance Issue  Looking at the indicators  Using the toolbox to see what‟s going on.
  • 31. Case: Triage SharePoint Performance Issue  Install Sp_AskBrent
  • 32. Case: Triage SharePoint Performance Issue
  • 33. Thank You ! Don’t Do it! http://Schoennie.blogspot.com Optimizing SQL 2008 for SP SharePoint Performance TroubleShooting http://dbareactions.tumblr.com/ When the Microsoft sales rep hears me questioning whether anybody’s really on Azure

Editor's Notes

  • #4: This presentation is meant to also be a nice “toolbox” for both current and new SharePoint deployments. There are a lot of reference links included in the presentation, as well as descriptive comments, like this. Although most options mentioned in this presentation are appropriate for MS Sql Sever 2008 R2, they will also work on older and newer SQL Server editions. This presentation is a collection of best-practices and performance tips which are scattered all across the web. This information is by all means not complete and will be a “work in progress” for the coming years. November 2013, Jeroen Schoenmakers
  • #6: A separate database for each “silo” or “section” in the intranet. This prevents having 1 big bucket that becomes slow and difficult to backup / restore / maintain.
  • #7: When we put all the work in the front end and ignore the back end.
  • #11: Fill factor:MAXDOP: When SQL Server runs on a computer with more than one microprocessor or CPU, it detects the best degree of parallelism, that is, the number of processors employed to run a single statement, for each parallel plan execution. You can use the max degree of parallelism option to limit the number of processors to use in parallel plan execution. Very short it comes down that SQL Server can utilize the amount of processors that are available to execute the queries in parallel and thus very efficiently. Now this does sound like a very cool nifty feature eh? It actually is.. however, sometimes SharePoint tries to produce some ad-hoc SQL queries where SQL Server has no clue what the most optimal path could be and thus it could lead to bad performance when it tries to utilize all the processors that are available. Furthermore, the PG has tested a lot with variable settings and came to the conclusion to NOT to use MAXDOP  is the most stable and performing way. And, when MAXDOP can be helpful, it is stated in the stored procedure itself.  
  • #12: To create 64 K allocation unit:DiskpartList diskSelect disk &lt;disknumber&gt;create partition primary align=1024assign letter=&lt;DriveLetter&gt;format fs=ntfs unit=64K label=&quot;&lt;label&gt;&quot; nowait
  • #13: Click on the “ref” link for reference material!
  • #23: Don’t use autoshrink and don’t use “Auto-Repair” in the SharePoint Health Analyser report !!: http://technet.microsoft.com/en-us/library/hh564121(v=office.14).aspxRun DBCC CheckDB as part of your backup / maintenance plan. If you don’t check the database integrity, SQL Server will backup corrupt databases and tell you the backup is successful ! Only when you restore the database, you’ll find out the database is corrupt and actually not restore-able !!! Of course you’ve been backing up this corrupted database for 2 months now, so there IS NO current backup to restore from !! I’ve seen this happen in production environment, be aware of this glitch ! (Run DBCC Check DB on off-hours, it will also keep your DB’s fast !)
  • #25: Where to look when there is a performance issue. These things should be benchmarked so that you can identify potential issues easily. Of course, some of these are already described in the previous slides to prevent them from happening !
  • #28: Ask for help: IW Yammer community, SPYam Yammer community, SQL DBA forums, #SP2013, #SP2010, #SQLHelp
  • #29: Before you know it you discovered a company-wide network issue, or SAN issue or virus; Always be ready for escalation. Example of things might blow-up very quickly is that I once was working on a performance issue, I discovered an old trial version of a 3rd party product still in production. I used the uninstall that came with the software, it removed a (later to be) Shared SharePoint component, resulting in the famous “configuration database not found” error on a white screen.. Check: http://schoennie.blogspot.com/2013/10/3rd-party-apps-that-leave-their-sht.html for more details !