SQL-pätkiä kaikenlaiseen operointiin

Välillä sitä ihminen tarvitsee jos jonkinlaista pikku skriptintynkää SQL:n kanssa operoimiseen. Alle on keräiltynä ikään kuin muistilapun oloisesti tarpeelliseksi havaittuja rytäyksiä.

Single User to Multi User (last resort -tyyppinen)

USE master
GO
DECLARE @kill varchar(max) = '';
SELECT @kill = @kill + 'KILL ' + CONVERT(varchar(10), spid) + '; '
FROM master..sysprocesses 
WHERE spid > 50 AND dbid = DB_ID('KANTA')
EXEC(@kill);

GO
SET DEADLOCK_PRIORITY HIGH
ALTER DATABASE [KANTA] SET MULTI_USER WITH NO_WAIT
ALTER DATABASE [KANTA] SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO
			

Trace Flag 3042 (ei tilan esivarausta kompressoidussa backupissa)

DBCC TRACEON (3042, -1)
DBCC TRACESTATUS (3042)

Muista myös laittaa -T3042 -parametri SQL:n startuppiin Configuration Managerin avulla.

Error-logien kierrätys joka kuun viides päivä

USE [msdb]
GO
DECLARE @jobId BINARY(16)
EXEC  msdb.dbo.sp_add_job @job_name=N'CycleErrorLogs', 
		@enabled=1, 
		@notify_level_eventlog=0, 
		@notify_level_email=2, 
		@notify_level_netsend=2, 
		@notify_level_page=2, 
		@delete_level=0, 
		@category_name=N'[Uncategorized (Local)]', 
		@description=N'Cycles error logs on the 5th day of every month.', 
		@owner_login_name=N'DOMAIN\Käyttäjä', @job_id = @jobId OUTPUT /* Käyttäjä voi olla myös sa-tunnus. */
select @jobId
GO
EXEC msdb.dbo.sp_add_jobserver @job_name=N'CycleErrorLogs', @server_name = N'SAMPO'
GO

EXEC msdb.dbo.sp_add_jobstep @job_name=N'CycleErrorLogs', @step_name=N'Cycle', 
		@step_id=1, 
		@cmdexec_success_code=0, 
		@on_success_action=1, 
		@on_fail_action=2, 
		@retry_attempts=0, 
		@retry_interval=0, 
		@os_run_priority=0, @subsystem=N'TSQL', 
		@command=N'EXEC sp_cycle_errorlog', 
		@database_name=N'master', 
		@flags=0
GO
DECLARE @schedule_id int
EXEC msdb.dbo.sp_add_jobschedule @job_name=N'CycleErrorLogs', @name=N'EveryMonthFifth', 
		@enabled=1, 
		@freq_type=16, 
		@freq_interval=5, 
		@freq_subday_type=1, 
		@freq_subday_interval=0, 
		@freq_relative_interval=0, 
		@freq_recurrence_factor=1, 
		@active_start_date=20180406, 
		@active_end_date=99991231, 
		@active_start_time=0, 
		@active_end_time=235959, @schedule_id = @schedule_id OUTPUT
select @schedule_id
GO

Aseta rinnakkaistumisen Cost Threshold ylemmäs kuin default (tässä 25)

EXEC sys.sp_configure N'show advanced options', N'1'
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'cost threshold for parallelism', N'25'
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'show advanced options', N'0'  
RECONFIGURE WITH OVERRIDE
GO

Aseta backup-kompressio oletusasetukseksi koko instanssissa

EXEC sys.sp_configure N'backup compression default', N'1'
GO
RECONFIGURE WITH OVERRIDE
GO