mirror of
https://github.com/Microsoft/sql-server-samples.git
synced 2025-12-08 14:58:54 +00:00
23 KiB
23 KiB
In [0]:
USE [master]
RESTORE DATABASE [AdventureWorks] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\Backup\AdventureWorks2017.bak'
WITH FILE = 1,
MOVE N'AdventureWorks2017' TO N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\DATA\AdventureWorks.mdf',
MOVE N'AdventureWorks2017_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\DATA\AdventureWorks_log.ldf', NOUNLOAD
GOIn [0]:
USE AdventureWorks
GO
CREATE OR ALTER PROCEDURE usp_EmployeeBirthdayList @month int AS
BEGIN
IF OBJECT_ID('tempdb..#Birthdays') IS NOT NULL DROP TABLE #Birthdays;
CREATE TABLE #Birthdays (BusinessEntityID int NOT NULL PRIMARY KEY);
INSERT #Birthdays (BusinessEntityID)
SELECT BusinessEntityID
FROM HumanResources.Employee
WHERE MONTH(BirthDate) = @month
SELECT p.FirstName, p.LastName, a.AddressLine1, a.AddressLine2, a.City, sp.StateProvinceCode, a.PostalCode
FROM #Birthdays b
INNER JOIN Person.Person p ON b.BusinessEntityID = p.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress bea ON p.BusinessEntityID = bea.BusinessEntityID
INNER JOIN Person.Address a ON bea.AddressID = a.AddressID
INNER JOIN Person.StateProvince sp ON a.StateProvinceID = sp.StateProvinceID
INNER JOIN Person.AddressType at ON at.AddressTypeID = bea.AddressTypeID
WHERE at.Name = N'Home'
END;In [11]:
USE master
GO
SELECT
er.session_id, er.wait_type, er.wait_resource,
OBJECT_NAME(page_info.[object_id],page_info.database_id) as [object_name],
er.blocking_session_id,er.command,
SUBSTRING(st.text, (er.statement_start_offset/2)+1,
((CASE er.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE er.statement_end_offset
END - er.statement_start_offset)/2) + 1) AS statement_text,
page_info.database_id,page_info.[file_id], page_info.page_id, page_info.[object_id],
page_info.index_id, page_info.page_type_desc
FROM sys.dm_exec_requests AS er
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS st
CROSS APPLY sys.fn_PageResCracker (er.page_resource) AS r
CROSS APPLY sys.dm_db_page_info(r.[db_id], r.[file_id], r.page_id, 'DETAILED') AS page_info
WHERE er.wait_type like '%page%'
GOOut [11]:
Commands completed successfully.
(3 rows affected)
Total execution time: 00:00:00.267
| session_id | wait_type | wait_resource | object_name | blocking_session_id | command | statement_text | database_id | file_id | page_id | object_id | index_id | page_type_desc |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 70 | PAGELATCH_EX | 2:1:118 | sysschobjs | 71 | EXECUTE | EXEC dbo.usp_EmployeeBirthdayList 4 | 2 | 1 | 118 | 34 | 2 | INDEX_PAGE |
| 78 | PAGELATCH_EX | 2:1:118 | sysschobjs | 71 | EXECUTE | EXEC dbo.usp_EmployeeBirthdayList 4 | 2 | 1 | 118 | 34 | 2 | INDEX_PAGE |
| 79 | PAGELATCH_EX | 2:1:118 | sysschobjs | 72 | CREATE TABLE | CREATE TABLE #Birthdays (BusinessEntityID int NOT NULL PRIMARY KEY) | 2 | 1 | 118 | 34 | 2 | INDEX_PAGE |
In [12]:
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED TEMPDB_METADATA=ON;
GOCommands completed successfully.
Total execution time: 00:00:00.057
In [17]:
SELECT SERVERPROPERTY('IsTempDBMetadataMemoryOptimized') AS IsTempDBMetadataMemoryOptimized;
GOOut [17]:
(1 row affected)
Total execution time: 00:00:00.101
| IsTempDBMetadataMemoryOptimized |
|---|
| 0 |
In [18]:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'tempdb metadata memory-optimized'Out [18]:
Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
Total execution time: 00:00:00.242
| name | minimum | maximum | config_value | run_value |
|---|---|---|---|---|
| tempdb metadata memory-optimized | 0 | 1 | 0 | 0 |
In [16]:
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED TEMPDB_METADATA=OFF;
GOCommands completed successfully.
Total execution time: 00:00:00.037