Enterprise | Sql Server 2012

SET @ObjectID = OBJECT_ID(@SchemaName + '.' + @TableName);

-- Create large fact table with partitioning CREATE TABLE dbo.SalesFact ( SaleID INT IDENTITY(1,1), SaleDate DATETIME, ProductID INT, CustomerID INT, Amount DECIMAL(18,2), Quantity INT, CONSTRAINT PK_SalesFact PRIMARY KEY (SaleID, SaleDate) ) ON ps_DateRange(SaleDate); sql server 2012 enterprise

WHILE @PartitionNumber <= @MaxPartition BEGIN BEGIN TRY -- ONLINE rebuild with compression (Enterprise only) SET @SQL = ' ALTER INDEX ALL ON ' + QUOTENAME(@SchemaName) + '.' + QUOTENAME(@TableName) + ' REBUILD PARTITION = ' + CAST(@PartitionNumber AS NVARCHAR(10)) + ' WITH ( ONLINE = ON, SORT_IN_TEMPDB = ON, MAXDOP = ' + CAST(@MaxDOP AS NVARCHAR(2)) + ', DATA_COMPRESSION = ' + @CompressionType + ', WAIT_AT_LOW_PRIORITY ( MAX_DURATION = ' + CAST(@WaitAtLowPriorityMaxDurationMinutes AS NVARCHAR(3)) + ' MINUTES, ABORT_AFTER_WAIT = BLOCKERS ) );'; PRINT 'Processing partition ' + CAST(@PartitionNumber AS VARCHAR) + ' of ' + CAST(@MaxPartition AS VARCHAR); EXEC sp_executesql @SQL; -- Update log UPDATE dbo.IndexMaintenanceLog SET PartitionsProcessed = @PartitionNumber, LastProcessedTime = GETDATE() WHERE TableName = @SchemaName + '.' + @TableName AND Status = 'Running'; END TRY BEGIN CATCH -- Log error INSERT INTO dbo.ErrorLog (ProcedureName, ErrorMessage, ErrorDate) VALUES ('Enterprise_OptimizeTablePartitions', ERROR_MESSAGE(), GETDATE()); RAISERROR('Failed on partition %d: %s', 16, 1, @PartitionNumber, ERROR_MESSAGE()); END CATCH; SET @PartitionNumber = @PartitionNumber + 1; END; SET @ObjectID = OBJECT_ID(@SchemaName + '

-- Update final status UPDATE dbo.IndexMaintenanceLog SET EndTime = GETDATE(), Status = 'Completed', CompressionUsed = @CompressionType WHERE TableName = @SchemaName + '.' + @TableName AND Status = 'Running'; END; GO -- Maintenance log table CREATE TABLE dbo.IndexMaintenanceLog ( LogID INT IDENTITY(1,1) PRIMARY KEY, TableName NVARCHAR(256), Action NVARCHAR(100), StartTime DATETIME, EndTime DATETIME, PartitionsProcessed INT DEFAULT 0, LastProcessedTime DATETIME, Status NVARCHAR(50), CompressionUsed NVARCHAR(10), CONSTRAINT CHK_Compression CHECK (CompressionUsed IN ('PAGE', 'ROW', 'NONE')) ); -- Error logging (Enterprise: uses compression) CREATE TABLE dbo.ErrorLog ( ErrorID INT IDENTITY(1,1) PRIMARY KEY, ProcedureName NVARCHAR(256), ErrorMessage NVARCHAR(MAX), ErrorDate DATETIME DEFAULT GETDATE() ); CONSTRAINT PK_SalesFact PRIMARY KEY (SaleID

EXEC dbo.sp_add_schedule @schedule_name = N'Weekly_Sunday_2AM', @freq_type = 8, @freq_interval = 1, @active_start_time = 20000;

-- Log start INSERT INTO dbo.IndexMaintenanceLog (TableName, Action, StartTime, Status) VALUES (@SchemaName + '.' + @TableName, 'Enterprise Optimize', GETDATE(), 'Running');

The owner of this website has made a commitment to accessibility and inclusion, please report any problems that you encounter using the contact form on this website. This site uses the WP ADA Compliance Check plugin to enhance accessibility.