I know that may be this question has been answered a lot of times, but I need a better way to solve it or to demonstrate to my boss that this is a normal behaviour or there is something that I'm overlooking.

I'm not a DBA, I'm a developer, and like my previous job, I've to take the DBA Mantle because we don't have a formal DBA on site or no one want's to take this thing seriously.

I have three instances of SQL Server, one with SQL 2008 R2 and two with SQL 2016. All are from production environment.

The SQL 2008 R2 is from our main System, it is hosted in a Virtual Server in Hyper-V and is a Dedicated Database Server. No other apps are allocated on that server, it is a pure database server.

The issue is that the server is configured with 30 GB of RAM, and SQL Server is configured to use from 4 GB minimum to 22 GB maximum.

[![}Memory Parameters Configured](https://i.stack.imgur.com/f4JLP.png)](https://i.stack.imgur.com/f4JLP.png)

If I do a restart, obviously the server memory usage goes to a flat line at server performance manager, releasing memory from memory used to the minimum configured.

[![Memory after restart](https://i.stack.imgur.com/AT7n9.png)](https://i.stack.imgur.com/AT7n9.png)

I need help understanding this situation, since all documentation point to an irrefutable fact that this is normal in SQL Server, that I've already documented myself about it, but my boss and colleagues state that this is not normal behaviour for the database. If I do numbers I think the server is requesting more memory. They say this is not a normal behaviour of SQL Server and that there is something we are overlooking (Jobs, and other stuff). To monitor or try to determine the Server Behaviour, I started sending Database Health Report every two hours, to try to check what's going on. For them, the expected behaviour is that SQL Server RAM should rise up and down in the performance graph and not stay at the top all the time, and as I understand this is the expected behaviour or SQL Server by design.

[![Database Health Report](https://i.stack.imgur.com/HHDm9.png)](https://i.stack.imgur.com/HHDm9.png)

But in different points in time, jobs rise to execute, and they finish normally, some time long running transactions are running, but when I run queries for them after the report is generated, they are gone.

Is there something I'm overlooking? Is this Normal? Is there a way to release memory without rebooting the instance? I've already tried a bunch of solutions