While Taking backup of SQL Server table getting error Insufficient memory available in buffer pool.
Note : This is one time activity therefor I didn't try to increase buffer pool memory
select * INTO USER_TABLE_2023_BKP19JULY2023 from USER_TABLE_2023
GO
Error : there is insufficient memory available in the buffer pool
(1 row affected)
Msg 802, Level 17, State 0, Line 1
There is insufficient memory available in the buffer pool.
Completion time: 2023-07-19T11:53:00.2383646+05:30
Possible Solution : Insert data to backup table in chunk.
DECLARE @rerord_count INT = 1;
WHILE @rerord_count > 0
BEGIN
BEGIN TRANSACTION;
INSERT USER_TABLE_2023_BKP19JULY2023(USERNAME, PROGRAM,USER_STATUS)
SELECT TOP (5000) USERNAME, PROGRAM,USER_STATUS
FROM USER_TABLE_2023 AS ST
WHERE NOT EXISTS
(
SELECT 1 FROM USER_TABLE_2023_BKP19JULY2023 AS TT
WHERE cast(TT.USERNAME as VARCHAR(100))+'#$----$#'
+cast(TT.PROGRAM as VARCHAR(100))+'#$----$#'
+cast(TT.USER_STATUS as VARCHAR(100)) =
cast(ST.USERNAME as VARCHAR(100))+'#$----$#'
+cast(ST.PROGRAM as VARCHAR(100))+'#$----$#'
+cast(ST.USER_STATUS as VARCHAR(100))
)
ORDER BY USERNAME,PROGRAM,USER_STATUS;
SET @rerord_count = @@ROWCOUNT;
COMMIT TRANSACTION;
END
GO
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(3508 rows affected)
(0 rows affected)
Completion time: 2023-07-19T11:30:17.5047267+05:30
ORDER BY USERNAME,PROGRAM,USER_STATUS;
SET @rerord_count = @@ROWCOUNT;
COMMIT TRANSACTION;
END
GO
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(5000 rows affected)
(3508 rows affected)
(0 rows affected)
Completion time: 2023-07-19T11:30:17.5047267+05:30
---Check Buffer pool size for a database
SELECT
database_id AS DatabaseID,
DB_NAME(database_id) AS DatabaseName,
COUNT(file_id) * 8/1024.0 AS BufferSizeInMB
FROM sys.dm_os_buffer_descriptors
where database_id=24
GROUP BY DB_NAME(database_id),database_id
ORDER BY BufferSizeInMB DESC
GO
DatabaseID DatabaseName BufferSizeInMB
24 TESTDB_LOCAL 0.414062
DatabaseID DatabaseName BufferSizeInKB
24 TESTDB_LOCAL 424
---Table Size
SELECT
s.Name AS SchemaName,
t.Name AS TableName,
p.rows AS RowCounts,
CAST(ROUND((SUM(a.used_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Used_MB,
CAST(ROUND((SUM(a.total_pages) - SUM(a.used_pages)) / 128.00, 2) AS NUMERIC(36, 2)) AS Unused_MB,
CAST(ROUND((SUM(a.total_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Total_MB
FROM sys.tables t
INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
where t.Name IN('USER_TABLE_2023')
GROUP BY t.Name, s.Name, p.Rows
ORDER BY s.Name, t.Name
GO
SchemaName TableName RowCounts Used_MB Unused_MB Total_MB
dbo USER_INTERFACE 353508 31.09 0.95 32.03