We have 2 separate DBs on the same physical server (one for big data, one for runtime data), they use separate set of physical disks, but same SQL Server instance.
Recently we run heavy query in the 'big data' database (analysing gigabytes of data) and a very simple query (from remote .net client on same dedicated LAN with network RT time in order of nanoseconds; running SP verifying a single bit) timed out:
System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=0; handshake=15000;
---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
1 retry)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
at System.Data.SqlClient.SqlConnection.Open()
Is the only option how to separate resources for those tow databases to separate them to two physical servers? Or is it possible to somehow ensure that the 'Runtime' database has always some small amount of resources available so that simple queries doesn't timeout?