Timeout errors on a database almost always point to lacking database maintenance, so first things I would look at is updating the database stats and rebuilding the indexes. Always make sure you do regular database maintenance or its performance will deteriorate over time.
Network could be an issue, but considering that in most SDL Tridion installations there won't be much distance between the database server and the CMS server (distance is mainly measured by the network bandwidth, usually you will see both are on the same GB LAN/WAN), I would tend to rule that out. You will probably be able to better judge that, and if there is a significant distance between the two (like the database and CMS server being in different datacenters), you might want to ask yourself why that is and if that is the only way.
But I would start with the simplest of things, and that is making sure regular database maintenance is done, and redo it just to see if it improves the situation. If it is a Microsoft SQL Server database, then running exec sp_updatestats
will update the statistics of that database. That simple command can solve a lot of timeout errors (and should be part of regular maintenance, it is a built in option that can automatically run btw.).
Next to that for MS SQL Server, look at things like backing up and truncating the transaction log (something like every hour will greatly improve your database performance). Specifically on MS SQL Server a transaction log of more than 1GB slows the database down drastically, you should always try to keep it below that size through timely backup/truncate.
If it is an Oracle database, by all means do consult a DBA, the basics of maintenance is the same, but there are other commands scripts that need to be run.