On your database server have you looked at the SQLserver activity monitor to see if anything is 'stuck' there?
If you have database issue then you should see processes 'suspended' and waiting for something [I use task state of non-blanks to see what is running, and what is stuck]
this is fairly typical on our database server:
i.e. a small number of waiting tasks; you can see that it's keeping up with lots of batch requests a second.
When something bad happens the # of waiting tasks spikes up to a couple of thousand.
Then you look to see what the task# is in the 'blocked by' or if a task is the 'head blocker' and investigate there.
[It is possible to setup sqlserver to trap deadlocks and produce a deadlock graph for more detailed troubleshooting]
I don't know about the size of other's systems, but we have close to 40,000 managed objects with default polling frequencies and at 11.0.1 the database server manages to keep up.
Our full 11.5 upgrade is scheduled for a couple of weeks, but it seems to be working fine on our test server.