Skip to content

Instantly share code, notes, and snippets.

@joerodgers
Last active November 14, 2019 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joerodgers/5ff663e66be0c0af8cbeb136f75635e9 to your computer and use it in GitHub Desktop.
Save joerodgers/5ff663e66be0c0af8cbeb136f75635e9 to your computer and use it in GitHub Desktop.
T-Shooting related SQL queries for SharePoint Databases
SELECT
DB_NAME(mf.database_id) AS 'Database Name'
,mf.Name AS 'Database File Name'
,CONVERT(DECIMAL (20,2)
,CONVERT(DECIMAL, size)/128) AS 'Current File Size'
,CASE mf.is_percent_growth
WHEN 1 THEN 'Yes'
ELSE 'No'
END AS 'Is Percentage Growrth'
,CASE mf.is_percent_growth
WHEN 1 THEN CONVERT(VARCHAR, mf.growth) + '%'
WHEN 0 THEN CONVERT(VARCHAR, mf.growth/128) + ' MB'
END AS 'Growth In Increment Of'
,CASE mf.is_percent_growth
WHEN 1 THEN CONVERT(DECIMAL(20,2), (((CONVERT(DECIMAL, size)*growth)/100)*8)/1024)
WHEN 0 THEN CONVERT(DECIMAL(20,2), (CONVERT(DECIMAL, growth)/128))
END AS 'Next Auto Growth Size (MB)'
,CASE mf.max_size
WHEN 0 THEN 'No growth is allowed'
WHEN -1 THEN 'Unlimited'
ELSE CONVERT(VARCHAR, mf.max_size)
END AS 'Max File Size'
FROM
sys.master_files mf
DECLARE @CheckedOutByAnonymousAllUserData TABLE
(
SQLServer VARCHAR(100),
DatabaseName VARCHAR(100),
Id INT,
SiteId UNIQUEIDENTIFIER,
ListId UNIQUEIDENTIFIER
)
INSERT INTO @CheckedOutByAnonymousAllUserData
EXECUTE master.sys.sp_MSforeachdb
'USE [?];
IF EXISTS (
SELECT * FROM INFORMATION_SCHEMA.tables (nolock) where TABLE_TYPE= ''BASE TABLE'' and TABLE_NAME=''AuditData'')
BEGIN
SELECT @@SERVERNAME, ''?'', tp_id, tp_SiteId, tp_ListId FROM AllUserData (nolock) WHERE tp_CheckoutUserId = -1
END'
SELECT DISTINCT * FROM @CheckedOutByAnonymousAllUserData
DECLARE @database_datafile_growth_value nvarchar(20)
SET @database_datafile_growth_value = '2097152KB' -- 2GB
DECLARE @database_logfile_growth_value nvarchar(20)
SET @database_logfile_growth_value = '2097152KB' -- 2GB
DECLARE sharepoint_database_logfiles CURSOR
FOR
SELECT DISTINCT
d.name AS database_name
,m.name AS database_file_name
,m.growth AS database_file_growth
,m.type_desc AS database_file_type_desc
FROM
master.sys.databases d join
master.sys.master_files m
ON
d.database_id = m.database_id
WHERE
d.name like 'SP2013_%' -- SHAREPOINT DATABASES
OR d.name like 'WF_%' -- WORKFLOW DATABASES
OR d.name like 'SB_%' -- SERVICE BUS DATABSES
OR d.name like 'db_%' -- ACCESS SERVICES 2013 DATABASES
DECLARE @database_name nvarchar(128),
@database_file_name nvarchar(128),
@file_growth INT,
@database_file_type_desc nvarchar(60),
@command nvarchar(2000)
OPEN sharepoint_database_logfiles
FETCH NEXT FROM sharepoint_database_logfiles INTO @database_name, @database_file_name, @file_growth, @database_file_type_desc
WHILE @@FETCH_STATUS = 0
BEGIN
IF(@database_file_type_desc = 'ROWS')
BEGIN
-- data file
SET @command = 'ALTER DATABASE [' + @database_name + '] MODIFY FILE ( NAME = N''' + @database_file_name + ''', FILEGROWTH = ' + @database_datafile_growth_value + ' )'
END
ELSE
BEGIN
-- log file
SET @command = 'ALTER DATABASE [' + @database_name + '] MODIFY FILE ( NAME = N''' + @database_file_name + ''', FILEGROWTH = ' + @database_logfile_growth_value + ' )'
END
-- execute the t-sql to alter the database data or log file autogrowth size
PRINT 'Updating Database File: ' + @database_file_name
EXEC(@command)
FETCH NEXT FROM sharepoint_database_logfiles INTO @database_name, @database_file_name, @file_growth, @database_file_type_desc
END
CLOSE sharepoint_database_logfiles
DEALLOCATE sharepoint_database_logfiles
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment