Я попытался использовать два метода для проверки того, подключен ли подключенный сервер, которые одинаково медленны. Учитывая, что я должен проверить, действительно ли сотни этих связанных серверов настроены в сети, я ищу более быстрый способ проверить доступность. К сожалению, ping не является вариантом, так как эти серверы потенциально защищены от брандмауэра, где открыт только порт базы данных.SQL Server медленно проверяет, подключен ли подключенный сервер
Select 1
Where Exists (Select COUNT(*)
From [LINK-RC].[DeltaV_KB].INFORMATION_SCHEMA.TABLES)
declare @retval bit
exec @retval = sys.sp_testlinkedserver [LINK-RC];
Будет ли только подключение к серверу быстрее или будет накладными расходами во время процесса соединения? Связанные серверы, по моему опыту, очень медленны. –
Что может помочь (никогда не тестировалось) настраивать [время ожидания удаленного входа] (https://msdn.microsoft.com/library/ms175136) (по умолчанию 10 или 20 секунд в зависимости от версии). Остерегайтесь того, что, очевидно, установка этого очень низкого уровня производства может привести к нежелательным таймаутам, если в худшем случае ситуация будет немного медленной. Если возможно, попробуйте сделать это за пределами SQL Server - ping может не работать, но подключение к порту 1433 для проверки того, можно ли его достичь, можно с помощью любого количества инструментов, наиболее заметно «nmap» (если ваши сетевые администраторы не бросают это было очень удобно). –