Clear out MSDB file in sql server

yadavdep
yadavdep used Ask the Experts™
on
I just joined a project which is live for the last 4 - 5 years.
This project is using SQL SERVER 2012 and on the server it has around 1500 databases.

I am noticing that SQL Server is consuming all the assigned memory (which is around 40GB).
Many time Transactions or query are getting timeout by SQL Server these days.

I checked and found that msdb file has grown to 68 GB in size. I am not sure that this is causing all these slow ness.

I tried to run the maintenance plan to clear out msdb but it just did not get ended. I tried it to run for two full days but then also it did not finished.

What I need to know is how can I clear this MSDB and is it one of the reason of this memory consumption by SQL Server
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Vitor MontalvãoIT Engineer
Distinguished Expert 2017

Commented:
This project is using SQL SERVER 2012 and on the server it has around 1500 databases.
In a single SQL Server instance? What's the average database size and how large is the biggest one?

I am noticing that SQL Server is consuming all the assigned memory (which is around 40GB).
That's the expected behavior even a minimum of 8GB should be reserved for the operating system.

Many time Transactions or query are getting timeout by SQL Server these days.
You might need to add more memory or a better solution is to build a 2nd SQL Server box and migrate some of the databases there.

I checked and found that msdb file has grown to 68 GB in size. I am not sure that this is causing all these slow ness.
Is not. How much of those 68GB is data and how much is transaction log?

I tried to run the maintenance plan to clear out msdb but it just did not get ended.
Which maintenance plan are you running? What you should do is to configure the SQL Agent to keep a shorter period of jobs history since having 1500 databases it should produce a lot of lines for each maintenance task, for sure. And not counting with each database specific job from their respective applications.
Database Analyst
Commented:
You should have regular SQL Jobs to cleanup history from msd as described here: "MSDB – CLEANUP IS NECESSARY" https://www.pythian.com/blog/msdb-cleanup-is-necessary/

and you can read a lot of good reasons why here:  https://www.brentozar.com/blitz/msdb-history-not-purged/
"How to Clean Up Overloaded MSDB Backup History"

If the maintenance Cleanup plans never complete you can use T-SQL to purge the history as described here:

https://www.mssqltips.com/sqlservertip/1727/purging-msdb-backup-and-restore-history-from-sql-server/

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial