unity connect - getting sql spinning with sharepoint - best practices for the backend

50
#UCO16 June 20 th , 2016 Getting SQL Spinning with SharePoint - Best Practices for the Backend Knut Relbe-Moe, Advania Knowledge Factory

Upload: knut-relbe-moe-mvp-mct

Post on 15-Jan-2017

134 views

Category:

Presentations & Public Speaking


1 download

TRANSCRIPT

Page 1: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

June 20th, 2016

Getting SQL Spinning with SharePoint - Best Practices for the BackendKnut Relbe-Moe, Advania Knowledge Factory

Page 2: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

Office Server & Services MVP Nintex vTE (Virtual Technical

Evangelist) SharePoint evangelist, mentor,

speaker Migration Expert Educator for Glasspaper Microsoft Certified Trainer Chief Technical Architect with

Advania Knowledge Factory @sharePTkarm (Twitter)

Knut Relbe-Moe

[email protected]

Page 3: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

About me

BLOG

LINKED IN

TWITTER

EMAIL

MEMBER OF

MEMBER OF

WORKS FORJOB TITLE

Microsoft MVPOffice Servers and Services

Chief Technical Architect

https://linkedin.com/in/shareptkarm

[email protected]

http://sharepointblog.no@shareptkarm

SharePoint Saturday Oslo

NIWUG

AWARDED

AWARDED

Nintex vTENintex Virtual Technical Evangelist

Thanx to @atomicvee

Page 4: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

THANK YOU TO THE TEAM BEHIND

Page 5: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

MS SQL Server is like the brain of your SharePoint environment

Page 6: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

So if the brain works slow, everything else will be slow….

Page 7: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

99.9% of SharePoint content stored in SQL Server Farm Configuration information stored in configuration db

Central Administration content stored in seperate content db

Most Service Applications have at least one db All Web Applications have at least one content db

Page 8: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

How to fix this

Follow the guidelines in this presentation Read and understand this whitepaper from Vlad Catrienscu Maximizing SQL 2012 Performance for SharePoint 2013 WhitePaper

If you have to reinstall MS SQL server as a new instance with the correct settings.

Page 9: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Agenda Foundamentals 13 tips to get your SQL Spinning Summary

Page 10: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Foundamentals

Page 11: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

SQL Server configurationFor 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

Use a dedicated instanceRun the service with a Managed account•No specific permission

Use named instances\ SharePoint

Page 12: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 1

Page 13: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Physical SQL Server will always outperform a virtual SQL server with the same specs, but what shall you choose.Pros : High availability because of the hypervisor, not because of clusteringEasier to scale up & downCan be easier to recover at Disaster Recovery

Cons:Very heavily loaded VMs have seen disk I/O issuesOver allocation of a virtual host. If you have too much running on a host, it's not just I/O that could be impacted.Harder to protect

Physical vs Virtual

Page 14: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 2

Page 15: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

DISKS

You should invest in as fast disk as possible If you run on a Virtual Server, consider physical disks for the SQL server

SSD or SAN If you have physical SQL server you should use at least 6 Disks:

1. TempDB 2. TempDB Logs 3. SharePoint Databases 4. SharePoint Databases Logs 5. OS 6. SQL binaries and other application Installs

Page 16: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

DISKS• You have a farm where most of the content is only read and

downloaded

• Your users will be collaborating, uploading documents, content

Speed/Scenario Read Intensive Scenario (ex Public Website) Fastest Tempdb data files and transaction logs . Database data files . Search databases, except for the Search administration

database Slowest Database transaction log files

Speed/Scenario Write Intensive Scenario ( collaborative workspace)

Fastest Tempdb data files and transaction logs . Database transaction log files . Search databases, except for the Search administration

database Slowest Database data files

Page 17: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 3

Page 18: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

RAM & CPU

• Your SQL Server needs to have enough RAM to function properly.

• If your SQL Server runs only SharePoint, here are the minimum requirements Small

Farm Deployment (0-500GB of Data)

Medium Farm Deployment (501-1TB of data)

Large Farm Deployment (1-2TB of Data)

Very Large Farm Deployment (2-5 TB of Data)

Special Cases

Ram Required

8GB 16GB 32 GB 64GB 64GB+

CPU 4 4 8 8 8

Page 19: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 4

Page 20: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

DISKS

SQL server reads and writes 64k at a time So change your allocation size from the 4K default to 64K. This small change alone, will improve your SQL performance by up to 30%

Use chkdsk <drive>to Verify

Use Format to Configure:• Format <drive> /Q /FS:NTFS /A:64K

/V:<volume> /Y

Page 21: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 5

Page 22: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Server Configuration – Collation SharePoint server 2013 is built to use Latin1_General_CI_AS_KS_WS. This is a quote from Microsoft to prove it:

“We support any CI collation for the SQL instance (for master, tempdb databases). However we recommend using Latin1_General_CI_AS_KS_WS as the instance default collation (master, tempdb databases).” CI – (Case Insensitive) A and a ARE treated as the same character. AS – (Accent Sensitive) a and á are NOT treated as the same character. KS – (Kana Sensitive) Japanese Hirakana and Katakana characters which look the same are

NOT treated as the same character. WS – (Width Sensitive) Single-Byte and Double-Byte versions of the same character are

NOT treated as the same character.

Page 23: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Server ConfigurationFor 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

Use named instances\ SharePoint

Use a dedicated instance

Run the service with a Managed account•No specific permission

Page 24: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Server ConfigurationUse 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

Page 25: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Server ConfigurationUse 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

Page 26: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Server Configuration Backups Compression

Page 27: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 6

Page 28: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Click to insert photo.

Max Memory

Thomas Larock from SQL Rockstar explains this:

SQL Server (and other database systems such as Oracle and Sybase) need to read data pages into their internal memory before they can be used. Of course your server needs memory to operate as well. When your database engine and your server are competing for the same memory resources, you get bad performance. You want your server and your database engine to be like dancing partners, and less like my kids fighting over the last cupcake.

Max Memory

Page 29: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 7

Page 30: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Optimize TempdB Split across n locations

N = total number of physical cores > super myth All temp files need to have the same size

Size of largest content dB or 10 % of Total Content DB’s Size whichever is bigger

The fastest disk possible | Place on a different Drive than the Content Database

Simple Recovery mode Place on Different Drive Than Content Databases

Page 31: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Model Database

SQL Server uses the Model database as a template for creating new user databases

So therefor make sure that Model database have correct initial size and growth settings. The log should be around 25% of the initial size. The auto growth is your insurance policy if your current database size has been reached.

Page 32: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Script

Page 33: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 8

Page 34: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Auto Create Statistics

Do not enable auto-create statistics on a server that hosts SQL Server and SharePoint Server

Enabling auto-create statistics is not supported for SharePoint Server

Page 35: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 9

Page 36: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

USE “DBA” created databases

Sizing Autogrowth DO NOT USE SIMPLE RECOVERY

Unless you understand the implications

Page 37: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 10

Page 38: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Maintenance Plan

Create a maintenance plan to backup databases, rebuild indexes and checking the logical and physical integrity of your database

Make sure you don’t run backup when heavy timer jobs runs in the SharePoint environment, like midnight

Page 39: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Recovery mode

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

Page 40: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 11

Page 41: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Script your SQL Server installation https://sqlserverfinebuild.codeplex.com/

Page 42: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 12

Page 43: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Always install SQL Alias in SharePoint

Use alias for the connection string• Client alias or DNS alias (preferred)

C:\Windows\System32\cliconfg.exe

Page 44: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Tip 13

Page 45: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

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

Page 46: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Summary

Page 47: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

10 simple tips to maximize performancehttp://www.sharepointblog.no/?p=851. SSD Disk or better2. Formating disk with 64K3. Language corralation Latin_CI_AS_KS_WS4. Maximum memory5. Changed Sizes on Model database6. Default fill factor to 807. Switched of autocreate statistics8. Max Degree of Parallelism – set to 1 (it has to be)9. Changed Initial Size & Autogrow on temp database, and created extra temp

files for the amount of processors.10. Don’t do backups at midnight.Maximizing SQL 2012 Performance for SharePoint 2013 WhitePaper by Vlad Catrinescu

Page 48: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

STAY TUNED FOR MORE GREAT SESSIONS

http://unityconnect.com/online

Page 49: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Questions?

Speaker picture

@shareptkarmOffice Server & Services

Page 50: Unity Connect - Getting SQL Spinning with SharePoint - Best Practices for the Backend

#UCO16

Thank You!Knut Relbe-MoeChief Technical Architect, Advania Knowledge [email protected]@outlook.com