СИНОНИМ SQL и производительность

У меня есть потребность в некоторых отчетах и ​​различных средах, и SQL Synonym будет иметь большой смысл, если наше решение заработает.

http://technet.microsoft.com/en-us/library/ms177544.aspx

Однако отделу оперативной поддержки эта идея не нравится из-за «последствий производительности». Я не понимаю, почему может быть какое-либо снижение производительности. Но есть ли у кого-нибудь опыт работы с SYNONYM и базами данных среднего размера (100 ГБ) и проблемами с производительностью?

Должен ли я беспокоиться, или Microsoft покрыла это, и используете ли вы SYNONYM или полностью квалифицированную [Database].[schema].[tablename] в запросе - есть ли какая-либо разница - с точки зрения производительности?


person Craig    schedule 14.02.2014    source источник
comment
Ваш отдел оперативной поддержки запутался. Синоним — это просто псевдоним (или, можно сказать, указатель); совсем не уверен, какие могут быть последствия для производительности, за исключением того, что, возможно, для разработчиков очевидно, что этот синоним, состоящий из двух частей, фактически ссылается на таблицу через связанный сервер, соединенный с помощью can и string... Или если вы используете явные подсказки индекса (! ) и находятся в старой неисправленной версии SQL Server.   -  person Aaron Bertrand    schedule 14.02.2014
comment
дубликат SQL Server — советы и рекомендации по синонимам?   -  person underscore_d    schedule 27.12.2017


Ответы (2)



Каждый раз, когда вы используете связанные серверы или запросы между базами данных, вы создаете потенциальные и хорошо задокументированные проблемы с производительностью. Например, запрос обычно становится распределенным запросом. Кроме того, оптимизатор имеет ограниченный доступ к удаленной статистике или вообще не имеет его, поэтому план запроса вряд ли будет «оптимальным». Использование синонима просто скрывает сложность под псевдонимом, который обычно выглядит как локальная ссылка и соблазняет разработчиков делать на связанном сервере вещи, которые им не следует делать, например, вложенные подзапросы и сложные объединения нескольких таблиц.

Тем не менее, я серьезно рассматриваю синонимы, но я подчеркну их особый характер соглашением об именах (например, syn_theTable) и правилами кодирования :)

person Ray    schedule 28.08.2015