T Sqlcode211203
T Sqlcode211203
Data Types
SELECT N'Hi'
SELECT *
FROM SalesLT.Address A
CROSS JOIN SalesLT.Address B
SELECT *
FROM SalesLT.Address A
CROSS JOIN SalesLT.Address B
SELECT *
INTO [SalesLT].[SalesOrderDetailCopy]
from [SalesLT].[SalesOrderDetail]
SELECT *
INTO [SalesLT].[SalesOrderHeaderCopy]
from [SalesLT].[SalesOrderHeader]
SELECT COUNT(*)
FROM [SalesLT].[SalesOrderHeaderCopy]
INSERT INTO [SalesLT].[SalesOrderHeaderCopy]
SELECT H1.*
FROM [SalesLT].[SalesOrderHeaderCopy] as H1
SELECT LEN(AddressLine1)
FROM SalesLT.Address
order by LEN(AddressLine1)
SELECT
CONVERT (varchar, getdate(), 126) AS runtime
, mig.index_group_handle
, mid.index_handle
, CONVERT (decimal (28,1), migs.avg_total_user_cost * migs.avg_user_impact *
(migs.user_seeks + migs.user_scans)) AS improvement_measure
, 'CREATE INDEX missing_index_' + CONVERT (varchar, mig.index_group_handle) + '_' +
CONVERT (varchar, mid.index_handle) + ' ON ' + mid.statement + '
(' + ISNULL (mid.equality_columns,'')
+ CASE WHEN mid.equality_columns IS NOT NULL
AND mid.inequality_columns IS NOT NULL
THEN ',' ELSE '' END + ISNULL (mid.inequality_columns, '') + ')'
+ ISNULL (' INCLUDE (' + mid.included_columns + ')', '') AS
create_index_statement
, migs.*
, mid.database_id
, mid.[object_id]
FROM sys.dm_db_missing_index_groups AS mig
INNER JOIN sys.dm_db_missing_index_group_stats AS migs
ON migs.group_handle = mig.index_group_handle
INNER JOIN sys.dm_db_missing_index_details AS mid
ON mig.index_handle = mid.index_handle
ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks +
migs.user_scans) DESC
65. Assess the use of hints for query performance
SELECT H.CustomerID, H.SalesOrderID, D.OrderQty
FROM SalesLT.SalesOrderHeaderCopy H
INNER JOIN SalesLT.SalesOrderDetailCopy D
ON H.SalesOrderID = D.SalesOrderID
OPTION (LOOP JOIN)
--
--
--
-- CHANGE_TRACKING_IS_COLUMN_IN_MASK
EXEC sys.sp_cdc_enable_db
-- What is my configuration?
EXECUTE sys.sp_cdc_help_change_data_capture
-- Update row
EXEC sys.sp_cdc_disable_db
DBCC SHOWCONTIG
-- Rebuild/Reorganize indexes
EXEC sp_updatestats
EXEC sp_spaceused
-- Display by file
-- Query plans
SELECT * FROM sys.query_store_plan
BEGIN TRANSACTION
UPDATE [SalesLT].[Address]
SET City = 'Toronto ON'
where City = 'Toronto'
-- Session 2
BEGIN TRANSACTION
UPDATE [SalesLT].[Address]
SET City = 'Toronto'
where City in ('Toronto ON', 'Toronto')
EXEC jobs.sp_add_target_group_member
@target_group_name = 'GrpDatabase',
@target_type = 'SqlDatabase',
-- or 'SqlServer', -- or 'PoolGroup'
-- if wanting to exclude, @membership_type = 'Exclude'
-- If targeting a server or pool, @refresh_credential_name = 'RefreshPassword',
@server_name = 'dp300database.database.windows.net',
@database_name = 'dp300';
-- In Master Database
-- Session 1
BEGIN TRANSACTION
UPDATE [SalesLT].[Address]
SET City = 'Toronto ON'
where City = 'Toronto'
-- Session 2
BEGIN TRANSACTION
UPDATE [SalesLT].[Address]
SET City = 'Toronto'
where City in ('Toronto ON', 'Toronto')
-- Waiting on resources
-- Possible blocking
DBCC CHECKDB
DBCC CHECKDB(DP300)
DBCC CHECKALLOC
DBCC CHECKALLOC(DP300)
DBCC CHECKTABLE('[SalesLT].[Address]')
-- Checks
DBCC CHECKCATALOG
DBCC CHECKCATALOG(DP300)
WITH NO_INFOMSGS
DBCC CHECKCONSTRAINTS
EXEC sp_helprotect
EXEC sp_helprole
EXEC sp_helprolemember
EXEC sp_add_schedule
@schedule_name = N'ScheduleName' ,
@freq_type = 4,
@freq_interval = 1, -- Fairly complex
@active_start_time = 012345 ;
GO
EXEC sp_attach_schedule
@job_name = N'JobName',
@schedule_name = N'ScheduleName' ;
GO
rollback tran
-- Session 2
BEGIN TRANSACTION
UPDATE [dbo].[myTable]
SET [objectname] = 'sysrscols'
where [objectname] = 'sys.rscols'
54. Configure Resource Governor for performance
-- Enable Resource Governor
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
-- Create resource pools
USE master
GO
-- DMVs
108, 110. Perform database and transaction log backups with options
BACKUP DATABASE NameOfDatabase
[FILEGROUP = 'X', FILEGROUP = 'Y' …]
TO MyPreviouslyCreatedNamedBackupDevice = 'BackupDevice'
MIRROR TO AnotherBackupDevice
WITH
-- Backup Set Options
COPY_ONLY
DIFFERENTIAL
COMPRESSION | NO_COMPRESSION
DESCRIPTION = 'description'
NAME = 'BackupSetName'
CREDENTIAL
ENCRYPTION
FILE_SNAPSHOT [EXPIREDATE = 'Dec 31, 2029 11:59 PM' | RETAINDAYS = days]
-- Monitoring Options
STATS = X
-- Tape Options
REWIND | NOREWIND
UNLOAD | NOUNLOAD
-- Examples
-- Restore from MI
RESTORE DATABASE NameOfDatabase
FROM URL = 'https:// … ' , 'https:// … '
Creating an Availability Group – additional permissions
USE [master]
GO
CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO