Advertisement
empiiam

Untitled

Nov 21st, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.96 KB | None | 0 0
  1. --https://www.sqlshack.com/using-memory-optimized-tables-to-replace-sql-server-temp-tables-and-table-variables/
  2. DROP PROCEDURE IF EXISTS dbo.TempDB_TempTableTest;
  3. DROP PROCEDURE IF EXISTS dbo.MemoryOptTableTest;
  4. DROP PROCEDURE IF EXISTS dbo.PhysicalTableTest;
  5. DROP PROCEDURE IF EXISTS dbo.VariableTable;
  6. DROP PROCEDURE IF EXISTS dbo.MemoryOptVarTable;
  7. GO
  8.  
  9. DROP TABLE IF EXISTS [MemoryOptTempTable];
  10. DROP TABLE IF EXISTS [PhysicalTempTable];
  11. DROP TYPE IF EXISTS MemoryOptTabVar;
  12. GO
  13.  
  14. CREATE TABLE [MemoryOptTempTable]
  15. (
  16.  [ID] INT IDENTITY(1,1) NOT NULL ,
  17.  [First_Name] nvarchar(10) NULL,
  18.  [Last_Name] nvarchar(10) NULL,
  19.  
  20.  CONSTRAINT [PK_MemoryOptTempTable]  PRIMARY KEY NONCLUSTERED
  21. (
  22.  ID ASC
  23. )
  24. )WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_ONLY )
  25. GO
  26.  
  27. CREATE TABLE [PhysicalTempTable]
  28. (
  29.  [ID] INT IDENTITY(1,1) NOT NULL ,
  30.  [First_Name] nvarchar(10) NULL,
  31.  [Last_Name] nvarchar(10) NULL,
  32.  
  33.  CONSTRAINT [PK_PhysicalTempTable]  PRIMARY KEY NONCLUSTERED
  34. (
  35.  ID ASC
  36. )
  37. )
  38. GO
  39.  
  40. CREATE TYPE MemoryOptTabVar AS TABLE (
  41.    [ID] INT IDENTITY(1,1) NOT NULL ,
  42.    [First_Name] nvarchar(10) NULL,
  43.    [Last_Name] nvarchar(10) NULL,
  44.    INDEX IX_MemoryOptTabVar_ID NONCLUSTERED (ID)
  45. ) WITH (MEMORY_OPTIMIZED = ON)
  46. GO
  47.  
  48. CREATE PROCEDURE dbo.TempDB_TempTableTest --- Normal SQL temp table
  49. AS
  50. BEGIN
  51. SET NOCOUNT ON;
  52.  CREATE TABLE #NorTempTable (ID INT IDENTITY(1,1) PRIMARY KEY NONCLUSTERED, [First_Name]
  53. nvarchar(10) NULL,   [Last_Name] nvarchar(10) NULL)
  54.  
  55.  DECLARE @cnt INT = 0;
  56.  WHILE @cnt < 1000
  57.  BEGIN
  58.     INSERT INTO #NorTempTable (First_Name,Last_Name) VALUES ('Sanya','J')
  59.     SET @cnt = @cnt + 1;
  60.  END
  61.  
  62.  DROP TABLE #NorTempTable
  63.  END
  64. GO
  65.  
  66. CREATE PROCEDURE dbo.MemoryOptTableTest --- Memory Optimized SQL temp table
  67. AS
  68. BEGIN
  69. SET NOCOUNT ON;
  70.  DECLARE @cnt INT = 0;
  71.  WHILE @cnt < 1000
  72.  BEGIN
  73.     INSERT INTO MemoryOptTempTable (First_Name,Last_Name) VALUES ('Sanya','J')
  74.     SET @cnt = @cnt + 1;
  75.  END
  76.  DELETE FROM MemoryOptTempTable;
  77.  END
  78. GO
  79.  
  80. CREATE PROCEDURE dbo.PhysicalTableTest --- Physical SQL temp table
  81. AS
  82. BEGIN
  83. SET NOCOUNT ON;
  84.  DECLARE @cnt INT = 0;
  85.  WHILE @cnt < 1000
  86.  BEGIN
  87.     INSERT INTO [PhysicalTempTable] (First_Name,Last_Name) VALUES ('Sanya','J')
  88.     SET @cnt = @cnt + 1;
  89.  END
  90.  TRUNCATE TABLE [PhysicalTempTable];
  91.  END
  92. GO
  93.  
  94. CREATE PROCEDURE dbo.VariableTable --- normal variable Table
  95.  AS
  96.  BEGIN
  97. SET NOCOUNT ON;
  98.     DECLARE @variableTab TABLE (ID INT IDENTITY(1,1) PRIMARY KEY CLUSTERED, [First_Name]
  99. nvarchar(10) NULL,   [Last_Name] nvarchar(10) NULL) ;
  100.  
  101.  DECLARE @cnt INT = 0;
  102.  WHILE @cnt < 1000
  103.  BEGIN
  104.     INSERT  @variableTab (First_Name,Last_Name) VALUES ('Sanya','J')
  105.     SET @cnt = @cnt + 1;
  106.  END
  107.  
  108. END
  109. GO
  110.  
  111. CREATE PROCEDURE dbo.MemoryOptVarTable --- Memory Optimized variable Table
  112.  AS
  113.  BEGIN
  114. SET NOCOUNT ON;
  115.     DECLARE @MemOptVarTab MemoryOptTabVar ;
  116.  
  117.     DECLARE @cnt INT = 0;
  118.     WHILE @cnt < 1000
  119.     BEGIN
  120.         INSERT @MemOptVarTab (First_Name,Last_Name) VALUES ('Sanya','J')
  121.         SET @cnt = @cnt + 1;
  122.     END
  123.    
  124. END
  125. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement