SharePoint & SQL Server
Working Together
Efficiently
Veenus Maximiuk
SharePoint Architect
ICC
About Me

Veenus Maximiuk, MCSA, MCITP, MCTS, MCPD, vTS
SharePoint Managing Architect
ICC

spvee.wordpress.com
@SharePointVee
Linkedin.com/in/vmaximiuk
vmaximiuk@icct.com

I’m a SharePoint geek.
I know enough about SQL from SharePoint
perspective.
I’m NOT a SQL DBA.

2
Session Goals

Consolidate your
knowledge and hopefully
learn something new

SharePoint Admins and
SQL DBAs speak the same
language ”SharePoint”

3
Agenda

Did you know...

Optimize SQL
Server instance

Optimize server for
SQL

SharePoint
SQL
best practices

4
Optimize server for
SQL

5
Disk layouts

TempDB

Logs

Database

OS

Backup

Prioritize

Separate drives for
different purposes

Prioritize for faster
disk
• TempDB
• Logs
• Database

6
Storage
Disk block
size

SQL Server pages are 8k in
size

Extents are a collection of
eight pages

Format drives with 64k
allocation unit

7
Antivirus
exclusions

File types to exclude:
•
•
•
•

*.mdf
*.ndf
*.ldf
*.bak

Clustering also exclude:
• <$windir>/cluster
• Witness quorum disk
(if deployed)

8
Optimize SQL Server
instance

9
Memory acquired is NOT released
Unless OS reports memory pressure

Dynamic
memory
management

Min server memory
Min amount that SQL Server process may
trim in event of memory pressure

Max server memory
• Max amount that SQL Sever process
can allocate to the buffer pool
• Recommend to set to total MB minus
OS + app overhead
10
Memory to
Leave for OS

SQL Server Max
Server Memory

16GB

4GB

12GB

32GB

Memory
Allocation

Physical
Memory
Setting

6GB

26GB

The general recommendation
is to always set Max Server
Memory and to leave some
memory to always be available
for the OS.

SQL server will give back memory
SQL Max Memory = TotalPhyMem - (NumOfSQLThreads * ThreadStackSize) - (1GB * CEILING(NumOfCores/4))
64GB
8GB
56GB
if OS 0)
NumOfSQLThreads = 256 + (NumOfProcessors*- 4) * 8 (* If NumOfProcessors > 4, elsememory runs low but there
can be OS memory stress if SQL
ThreadStackSize = 2MB on x64 or 4 MB on 64-bit (IA64)

128GB

16GB

112GB

256GB

16GB

240GB

does not respond fast enough to
sudden memory demands from
other processes on the system.

11
TempDB files

Same number of
data files as CPUs
Max of 8

Use RAID-10

Pre-size TempDB
files

Set Auto Growth to
Fixed size <200 MB

Only one
transaction log file

25% of largest DB size

SELECT * FROM
sys.dm_os_schedulers

12
Model
database file
settings

•
•

SharePoint databases are
based off Model
Consider changing the
settings

13
MAXDOP for
SharePoint must be 1

Max Degree
of Parallelism
Error message
when creating new
SP2013 farms
Controls the number of
processors that can be used
to run a single SQL Server
statement

11/24/2013

14
Other “Stuff”

Instance collation
Latin1_General_CI_AS_KS_WS

Windows
authentication

Auto shrink set to
off

(case-insensitive, accent-sensitive, Kana-sensitive, and width-sensitive)

Access Services requires
Mixed Mode!

Otherwise causes high
fragmentation

11/24/2013

Set Fill Factor to 80

15
Demo

Optimize SQL Server instance
SharePoint
SQL
best practices

17
To alias or
not to alias

SQL Aliases

18
Naming
standards

A standard is better
than no standard

No GUIDS

Consider multiple
Farms and
environments

19
Detecting
index
fragmentation

Use ALTER INDEX
(REBUILD or
REORGANIZE) to
defrag indexes

20
SharePoint
Health
Analyzer
Rules
SharePoint maintains the index health
Stored Procedures proc_UpdateStatistics and
proc_DefragmentIndices in some database
Otherwise include in database maintenance plans

•
•
•
•
•
•
•
•

Search Administration, Analytics, Links Databases
Secure Store Database
State Service Database
Profile Sync Database
Usage Database
Managed Metadata Database
Business Connectivity Services Database
PerformancePoint Services Database
21
Did you know…

22
“Undocumented
feature”

SharePoint databases copy only initial settings

Autogrow settings are not copied
Settings from model database apply to ALL
SharePoint databases

Unsupported

DBCC CHECKDB WITH REPAIR
AUTO_CREATE_STATS
AUTO_UPDATE_STATS

Don’t forget

Leave autogrowth on
Don’t shrink transaction logs

Auto create statistics modifies DB schema
Upgrade will break

11/24/2013

23
Questions?

SharePoint & SQL Server Working Together Efficiently

  • 1.
    SharePoint & SQLServer Working Together Efficiently Veenus Maximiuk SharePoint Architect ICC
  • 2.
    About Me Veenus Maximiuk,MCSA, MCITP, MCTS, MCPD, vTS SharePoint Managing Architect ICC spvee.wordpress.com @SharePointVee Linkedin.com/in/vmaximiuk vmaximiuk@icct.com I’m a SharePoint geek. I know enough about SQL from SharePoint perspective. I’m NOT a SQL DBA. 2
  • 3.
    Session Goals Consolidate your knowledgeand hopefully learn something new SharePoint Admins and SQL DBAs speak the same language ”SharePoint” 3
  • 4.
    Agenda Did you know... OptimizeSQL Server instance Optimize server for SQL SharePoint SQL best practices 4
  • 5.
  • 6.
    Disk layouts TempDB Logs Database OS Backup Prioritize Separate drivesfor different purposes Prioritize for faster disk • TempDB • Logs • Database 6
  • 7.
    Storage Disk block size SQL Serverpages are 8k in size Extents are a collection of eight pages Format drives with 64k allocation unit 7
  • 8.
    Antivirus exclusions File types toexclude: • • • • *.mdf *.ndf *.ldf *.bak Clustering also exclude: • <$windir>/cluster • Witness quorum disk (if deployed) 8
  • 9.
  • 10.
    Memory acquired isNOT released Unless OS reports memory pressure Dynamic memory management Min server memory Min amount that SQL Server process may trim in event of memory pressure Max server memory • Max amount that SQL Sever process can allocate to the buffer pool • Recommend to set to total MB minus OS + app overhead 10
  • 11.
    Memory to Leave forOS SQL Server Max Server Memory 16GB 4GB 12GB 32GB Memory Allocation Physical Memory Setting 6GB 26GB The general recommendation is to always set Max Server Memory and to leave some memory to always be available for the OS. SQL server will give back memory SQL Max Memory = TotalPhyMem - (NumOfSQLThreads * ThreadStackSize) - (1GB * CEILING(NumOfCores/4)) 64GB 8GB 56GB if OS 0) NumOfSQLThreads = 256 + (NumOfProcessors*- 4) * 8 (* If NumOfProcessors > 4, elsememory runs low but there can be OS memory stress if SQL ThreadStackSize = 2MB on x64 or 4 MB on 64-bit (IA64) 128GB 16GB 112GB 256GB 16GB 240GB does not respond fast enough to sudden memory demands from other processes on the system. 11
  • 12.
    TempDB files Same numberof data files as CPUs Max of 8 Use RAID-10 Pre-size TempDB files Set Auto Growth to Fixed size <200 MB Only one transaction log file 25% of largest DB size SELECT * FROM sys.dm_os_schedulers 12
  • 13.
    Model database file settings • • SharePoint databasesare based off Model Consider changing the settings 13
  • 14.
    MAXDOP for SharePoint mustbe 1 Max Degree of Parallelism Error message when creating new SP2013 farms Controls the number of processors that can be used to run a single SQL Server statement 11/24/2013 14
  • 15.
    Other “Stuff” Instance collation Latin1_General_CI_AS_KS_WS Windows authentication Autoshrink set to off (case-insensitive, accent-sensitive, Kana-sensitive, and width-sensitive) Access Services requires Mixed Mode! Otherwise causes high fragmentation 11/24/2013 Set Fill Factor to 80 15
  • 16.
  • 17.
  • 18.
    To alias or notto alias SQL Aliases 18
  • 19.
    Naming standards A standard isbetter than no standard No GUIDS Consider multiple Farms and environments 19
  • 20.
    Detecting index fragmentation Use ALTER INDEX (REBUILDor REORGANIZE) to defrag indexes 20
  • 21.
    SharePoint Health Analyzer Rules SharePoint maintains theindex health Stored Procedures proc_UpdateStatistics and proc_DefragmentIndices in some database Otherwise include in database maintenance plans • • • • • • • • Search Administration, Analytics, Links Databases Secure Store Database State Service Database Profile Sync Database Usage Database Managed Metadata Database Business Connectivity Services Database PerformancePoint Services Database 21
  • 22.
  • 23.
    “Undocumented feature” SharePoint databases copyonly initial settings Autogrow settings are not copied Settings from model database apply to ALL SharePoint databases Unsupported DBCC CHECKDB WITH REPAIR AUTO_CREATE_STATS AUTO_UPDATE_STATS Don’t forget Leave autogrowth on Don’t shrink transaction logs Auto create statistics modifies DB schema Upgrade will break 11/24/2013 23
  • 24.