Tuning SQL Server for SharePoint : what every SharePoint consultant needs to know Serge Luca & Isabelle Van Campenhoudt
Jul 27, 2015
Tuning SQL Server for SharePoint : what every SharePoint consultant needs to know
Serge Luca & Isabelle Van Campenhoudt
www.sharepointsummit.org
A propos
Share
QL
2
Isabelle Van Campenhoudt
MVP SQLTheSQLgrrrl.wordpress.com
Serge LucaMVP SharePointSergeluca.wordpress.com
ShareQL.com
www.sharepointsummit.org
About Us
Serge Luca
SharePoint MVP
Consultant, speaker, trainer- Brussels (Belgium)
Managing partner of www.ShareQL.com
Works with SharePoint since 2001
Blog: http://sergeluca.wordpress.com/
@SergeLucaSerge Luca
www.sharepointsummit.org
About us
Isabelle Van Campenhoudt
SQL Server MVP
Consultant, speaker, trainer-Brussels (Belgium)
Managing partner of www.ShareQL.com
Works with SQL Server since 1999
Blog: http://thesqlgrrrl.wordpress.com/
@thesqlgrrrl
Isabelle Van
Campenhoudt
www.sharepointsummit.org
Credits
Serge Luca Accidental DBA
IsabelleVan Campenhoudt
SQL guru
www.sharepointsummit.orgAgendaBasic SharePoint DB concepts
Operating System settings
SQL Server configuration
Databases configuration
SharePoint and SQL Server integration concepts
SQL Server optimization
HA and DR : Always On Availability Groups & SP 2013
Agenda
www.sharepointsummit.org
Basic SharePoint DB concepts
Operating System settings
SQL Server configuration
Databases configuration
SharePoint and SQL Server integration concepts
SQL Server optimization
HA and DR : Always On Availability Groups & SP 2013
Agenda
www.sharepointsummit.org
Basic SharePoint Concepts
95% of SharePoint content stored in SQL
Server
Farm Configuration information stored in
configuration db
Central Administration content stored in own
content db
Most Service Applications have at
least one db
All Web Applications have at least one
content db
Farm has several databases; >20 if
spousal installation
www.sharepointsummit.org
Basic SharePoint DB concepts
Operating System settings
SQL Server configuration
Databases configuration
SharePoint and SQL Server integration concepts
SQL Server optimization
HA and DR : Always On Availability Groups & SP 2013
Agenda
www.sharepointsummit.org
Operating System settings
Optimize Hardware
CPU RAM DISK Network
10
www.sharepointsummit.org
Latence
NetworkLatency between web front ends and SQL
Server
• < 1 ms during10 minutes (1% failure max) • 1 Giga bits / sec• Mandatory for stretched farm, but good practice
www.sharepointsummit.org
NTFS Allocation Unit Size
64K is optimal, 4K = 30% Performance
Penalty
Use chkdsk <drive>to Verify
Use Format to Configure:• Format <drive> /Q /FS:NTFS /A:64K /V:<volume> /Y
www.sharepointsummit.org
Basic SharePoint DB concepts
Operating System settings
SQL Server configuration
Databases configuration
SharePoint and SQL Server integration concepts
SQL Server optimization
HA and DR : Always On Availability Groups & SP 2013
Agenda
www.sharepointsummit.org
SQL Server configuration
For SharePoint 2013:• SQL Server 2008 R2 SP1• SQL Server 2012 (SP1 for BI)• SQL Server 2014 (SP2013 SP1 & April CU)
Don’t install SSMS on the SQL Server computer
Use named instances\ SharePoint
Use a dedicated instance
Run the service with a Managed account
•No specific permission
www.sharepointsummit.org
Collation settings
Latin1_General_CI_AS_KS_WS (for SharePoint databases)
(Any CI collation is supported for tempDBs, master, but Latin1_xxx_ is recommended)
SP uses this collation when it creates its own db Cannot be changed after the setup
www.sharepointsummit.org
Max degree of parallelismMaxdop=1
www.sharepointsummit.org
Specify memory limits
www.sharepointsummit.org
BackupsCompression
SQL server Configuration
www.sharepointsummit.org
Use alias for the connection string• Client alias or DNS alias (preferred)
Good practice : every SP Content db must be created (and documented) by a DBA after a strict capacity plan
www.sharepointsummit.org
Basic SharePoint DB concepts
Operating System settings
SQL Server configuration
Databases configuration
SharePoint and SQL Server integration concepts
SQL Server optimization
HA and DR : Always On Availability Groups & SP 2013
Agenda
www.sharepointsummit.org
System databases
Master : similar to the SP configDB
Model : template for other dbs
Tempdb : temporarily results
Msdb : for automation
User databases The SharePoint databases
SQL Server basic concepts
www.sharepointsummit.org
SQL Server basic concepts
Simple Recovery Model
.MDF .LDFAddContent
Content Database Located on Hard Drive
Checkpoint
Data
Data
Simple Recovery Model
www.sharepointsummit.org
Full Recovery Model
.LDF
Data
Data
.MDFAddContent
Content Database Located on Hard Drive
Checkpoint
Data
Data
Full Recovery Model (Recommended)
SQL Server basic concepts
www.sharepointsummit.org
Model db : recovery model = full
Tempdb : recovery model = simple
SharePoint DB : recovery model ?
Contend DB = full Config DB= simple
Services App DBs= it depends :•http://
technet.microsoft.com/en-us/library/
cc678868.aspx
Always On Availability groups: recovery = full !
SQL Server basic concepts
www.sharepointsummit.org
Model DB settings
Increase Initial sizeIncrease Autogrowth
(MB , not %)
Don’t modify Model db collation Full Recovery Model
www.sharepointsummit.orgTempdb settings
Configure Tempdb files•#files = #cores •(on sql server 2012 Max 8 if #cores > 8)
•Same size for every file
Configure Tempdb Size •At Least 10% of Total Content DB’s Size or
•Size of Largest Table - Whichever Greater
Tempdb Database Settings•Increase Initial Size Setting•Increase Autogrowth Settings (Use MB Not %)•Use Simple Recovery Model•Place on Different Drive Than Content Databases
www.sharepointsummit.org
Files Placement
Priority (Fastest to Slowest Drive)
Tempdb Data and Transaction Log Files
DataBase Transaction Log Files
Search Database Data Files Content Database Data
Files
Use Multiple Data Files for Content and Search DB’s
Distribute Equally-Sized Data Files Across Separate Disks
Number of Data Files Should Be <= Number of Processor Cores
Multiple Data Files Not Supported for Other DBs
www.sharepointsummit.org
Basic SharePoint DB concepts
Operating System settings
SQL Server configuration
Databases configuration
SharePoint and SQL Server integration concepts
SQL Server optimization
HA and DR : Always On Availability Groups & SP 2013
Agenda
www.sharepointsummit.org
Installating SharePoint
Setup account (sp-install)Must be:
(SQL Server) DBcreator
(SQL Server) Securityadmin
Local admin Domain account
www.sharepointsummit.org
Integrating SharePoint and SQL Serveur
Farm has several databases; >20 if spousal installation
Site Collections only reside in one database
Content database contains multiple site collections (2,000 Default Setting)
If Site Collection > 100GB store in own content database•Soft limit maximum size <= 200 GB
www.sharepointsummit.org
SP Health Analyzer
Job will defragment the indices
If fragment > 30% &
rowcount > 10.000
Job will update statistics
AUTO_CREATE_STATISTICS
OFF
www.sharepointsummit.org
Verify Integrity of databases
DBCC CheckDB
Check REPAIR_REBUILD Option to Fix Errors (Not
Always Possible)REPAIR_ALLOW_DATA_
LOSS Not Supported
Time Consuming Operation, Run During
Non-Peak Hours
For Very Large DBs consider using option
MAXDOP=1
www.sharepointsummit.org
Basic SharePoint DB concepts
Operating System settings
SQL Server configuration
Databases configuration
SharePoint and SQL Server integration concepts
SQL Server optimization
HA and DR : Always On Availability Groups & SP 2013
Agenda
www.sharepointsummit.org
Tools
CPU I/O (Iometer is a tool to check
your SAN) Network Memory
Run a trace of Performance Counters (24 hours) Provides templates of
accurate counters Analyse regarding
thresholds Generate meaningfull
reports
Use PAL(« Performance Analysis of Logs »)
Use this trace as a baseline!!!
www.sharepointsummit.org
Dashboard
www.sharepointsummit.org
Check performance counters & set a baseline
www.sharepointsummit.org
Check performance counters & set a baseline
www.sharepointsummit.org
In-SAN-ity ?
www.sharepointsummit.org
Using SQL Server Resource Governor to optimize Search Database usage
Part of SQL Server Enterprise (since SQL 2008)
Limits CPU and memory usage on some DBs (and IO in SQL Server 2014)• like search DBs
Allow less CPU & mem & IO usage during work hours
Allow more CPU & mem & IO usage during off hours
39
www.sharepointsummit.org
Basic SharePoint DB concepts
Operating System settings
SQL Server configuration
Databases configuration
SharePoint and SQL Server integration concepts
SQL Server optimization
HA and DR : Always On Availability Groups & SP 2013
Agenda
www.sharepointsummit.org
Terminology
Service Level Agreement
HA DR RPO RTO
www.sharepointsummit.org
Always On Availability Groups & SharePoint
SQL 1
FARM 1
SQL 2
ProductionToronto
High Availabilty
Synchronous
www.sharepointsummit.org
Always On Availability Groups & SharePoint
SQL 1
FARM 1
SQL 2
Synchronous
ProductionToronto
High Availabilty
www.sharepointsummit.org
Database Support – Sync Commit
Database Supported
Admin Content Yes
App Management Yes
BDC Yes
Config Yes
Content Yes
Managed Metadata Yes
PerformancePoint Yes
PowerPivot Not Tested
Project Yes
Search Analytic Reporting Yes
Search Admin Yes
Database Supported
Search Crawl Yes
Search Links Yes
Secure Store Yes
State Service Yes
Subscription Settings Yes
Translation Services Yes
UPA Profile Yes
UPA Social Yes
UPA Sync Yes
Usage(=loggingDB) Yes – NR
Word Automation Yes
WE
www.sharepointsummit.org
Always On Availability Groups & SharePoint
SQL 1
FARM 1
SQL 2
FARM 2
SQL 3
ProductionToronto
DRMontréal
Asynchronous
DisasterRecovery
Synchronous
www.sharepointsummit.org
Database Support – Async Commit
Database Supported
Admin Content No
App Management Yes
BDC Yes
Config No
Content Yes
Managed Metadata Yes
PerformancePoint Yes
PowerPivot Not Tested*
Project Yes
Search Analytic Reporting No
Search Admin No
Database Supported
Search Crawl No
Search Links No
Secure Store Yes
State Service No
Subscription Settings Yes
Translation Services Yes
UPA Profile Yes
UPA Social Yes
UPA Sync No
Usage Yes – NR
Word Automation Yes
WE
www.sharepointsummit.org
Comparison Always On and other SQL Servers HA & DR
High Availability and Disaster RecoverySQL Server Solution
Potential Data Loss
(RPO)
Potential Recovery Time
(RTO)
Automatic Failover
Readable Secondaries
AlwaysOn Availability Group - synchronous-commit Zero Seconds Yes 0 – 2
AlwaysOn Availability Group - asynchronous-commit Seconds Minutes No 0 - 4
AlwaysOn Failover Cluster Instance NA Seconds-to-minutes
Yes NA
Database Mirroring - High-safety (sync + witness) Zero Seconds Yes NA
Database Mirroring - High-performance (async) Seconds Minutes No NA
Log Shipping Minutes Minutes-to-hours
No Not duringa restore
Backup, Copy, Restore Hours Hours-to-days
No Not duringa restore
www.sharepointsummit.org
Q&A
Thank you for your attention!This presentation will be available on the Vancouver
SharePoint Summit web site a few days after the event.
@sergeluca@thesqlgrrrl
Please rate this session!Fill out the survey for a chance to win a Surface