1. SharePoint Saturday Montreal#SPSMontreal
May 13th 2017
SharePoint Saturday
Montreal
Rendre son SharePoint 2013/2016
extrêmement rapide
en monitorant & optimisant SQL Server
Serge Luca & Isabelle Van Campenhoudt
ShareQL
3. Isabelle Van Campenhoudt
Isabelle Van
Campenhoud
t
SQL Server MVP, Brussels
Consultant, speaker, trainer, PASS V-Chapter Leader
Managing partner de www.ShareQL.com
SQL Server since 1999
Blog: http://thesqlgrrrl.wordpress.com/
ivc@ShareQL.com
@thesqlgrrrl
Isabelle
Van Campenhoudt
globalfrench.sqlpass.org
4. Serge Luca
Serge Luca
10 x SharePoint MVP, Brussels
Consultant, speaker, trainer
Managing partner of www.ShareQL.com
SharePoint since 2001
Blog: http://sergeluca.wordpress.com/
sergeluca@ShareQL.com
@SergeLuca
Serge Luca
6. 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
7. 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
8. 99.9% 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
9. 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
11. Network (dedicated
subnet for SQL)
Latency between web
front ends and SQL
Server
• Mandatory for stretched farm, but good practice:
• < 1 ms during10 minutes (1% failure max)
• 1 Giga bits / sec
• Recommended if mirroring or Always On Sync (see later)
12. 64K is optimal, 4K =
30% Performance
Penalty (data files, not
log files)
Use chkdsk <drive>to
Verify
Use Format to Configure:
• Format <drive> /Q /FS:NTFS /A:64K /V:<volume> /Y
13. • As part of capacity plan
• Determine how much GB you need
• Talk to the SAN team
Because…
14. Database name IOPS requirements
Typical load on I/O
subsystem.
Optimization
TempDB High 2 IOPS/GB Write
Content DB High
0.5-0.75 IOPS/ GB (4
TB supported:
0.25IOPS/GB , ideally:
2 IOPS/GB)
Read
Transaction Log High 2 IOPS/GB Write
Search Crawl database Medium to high IOPS
10 IOPS per 1
document per second
(DPS) crawl rate.
Write
Search Link database Medium IOPS
10 IOPS per 1 million
items in the search
index.
Search administration
database
Low IOPS Not applicable.
Search Analytics
reporting database
Medium IOPS Not applicable.
15. • IOMeter (free)
• SQLIO (free)
• …
• In production : be careful
• Test with a file > than SAN cache
• Test reading/writing , random 64k (for data)and
sequential (for transaction log)
16. 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
17. For SharePoint 2013:
• SQL Server 2008 R2 SP1
• SQL Server 2012 (SP1 for BI)
• SQL Server 2014 (SP2013 SP1 & April CU)
For SharePoint 2016:
• SQL Server 2014
• SQL Server 2016
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
22. 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
23. 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
24. System
databases
Master : similar to
the SP configDB
Model : template
for other dbs
Tempdb :
temporarily results
Msdb : for
automation
User databases The SharePoint databases
27. 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 !
(UAT & Production)
Developer Workstation /Test Farm: recovery = simple!
29. 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 Biggest
Content DB’s Size
Tempdb Database Settings
•Increase Initial Size Setting
•Increase Autogrowth Settings (Use MB Not %)
•Use Simple Recovery Model
•Place on Different Drive Than Content Databases
30. Priority (Fastest to
Slowest Drive)
Tempdb Data and
Transaction Log Files
Content 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
31. 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
33. 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
34. Job will defragment the
indices
If fragment >
30% &
rowcount >
10.000
Job will update statistics
AUTO_CREATE
_STATISTICS
OFF
35. 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
36. 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
37. 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 (free)
(« Performance
Analysis of Logs ») or
SCOM
Use this trace as a baseline!!!
In production (live) Or Use Visual Studio (for Web performance
Tests, simulate actions, number of users)
38. Counters: Should be:
Memory: Available Bytes At least 4 GB for the system
Logical Disk: Disk Reads/sec Between 15 and 25 ms
Logical Disk: Disk Writes/sec Between 15 and 25 ms
Process: cpu/working set/io SQLsrve.exe % other processes
Processor Max 40%
SQL Server: Buffer Manager: Buffer Cache Hit
Ratio
>97%
SQLServer: Buffer Manager: Page life
expectancy
> 300 sec (but do a baseline)
38
39.
40.
41.
42.
43. 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
44. 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
49. 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