SQL Server 2019 SSISDB's High Memory Usage

Oktay Bozdemir 41 Reputation points
2025-07-22T09:17:32.3033333+00:00

We are using SQL Server 2019 and SSIS on a single server, which runs nightly ETL jobs using SSIS as the ETL tool.

Each night, when the ETL processes begin, SSISDB’s memory usage increases significantly. However, even during the day—when no ETL jobs are running—the memory usage remains around 95%.

How can we prevent SSISDB from consuming so much memory while idle? Restarting the SSIS service from the Services console does not resolve the issue; the only effective solution so far has been restarting the SQL Server itself.

SELECT   DB_NAME(database_id) AS [Database Name],  

               COUNT(*) * 8 / 1024 AS [Memory Usage (MB)]

FROM sys.dm_os_buffer_descriptorsWHERE 1=1

--and database_id NOT IN (1, 2, 3, 4) -- sistem veritabanlarını hariç tut

GROUP BY database_idORDER BY [Memory Usage (MB)] DESC;
Query result:
SSIS_DB 66530 MB
DWH_DB 4900
REPORT_DB 4500
OTHER_DB ....

SQL Server Integration Services
0 comments No comments
{count} votes

Accepted answer
  1. Erland Sommarskog 124.2K Reputation points MVP Volunteer Moderator
    2025-07-22T10:02:00.73+00:00

    This is the expected behaviour.

    When SQL Server reads data from a database, it first checks if the data is in the buffer cache, as serving the data from the buffer cache is more efficient than reading from disk. If the data is not in the cache, SQL Server reads the data from disk into the cache. The data will then stay in the cache until the space is needed for something else, and data that has not been used for a while is aged out.

    So it is typical to see SQL Server acquire more and more memory and stick to it. However, if Windows signals that there is memory pressure, SQL Server will yield memory.

    Nevertheless, you can force SQL Server to release the buffers with the data in SSISDB by running:

    USE SSISDB
    go
    ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE CACHE
    

    However, it is pretty pointless. The net effect is that your ETL jobs will take a little longer time by reading the data from SSISDB into disk again.


0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.