SQL Server-синонимы советы и рекомендации? [закрытый]

в последнее время я делаю много рефакторинга БД, и синонимы пришли невероятно полезными. Когда я изначально поставлены в синонимы, я думаю им будет очень временным, а я рефакторинг. Теперь я думаю,что могут быть веские причины сохранить некоторые из этих синонимов.

  • кто-нибудь использовал их как полноценный удар слой абстракции?

  • каковы затраты на производительность?

  • любые gotchas с индексы?

  • советы или хитрости?

мой первый вопрос, поэтому, пожалуйста, быть нежным.

спасибо

3 ответов


поскольку синоним является абстракцией / альтернативным именем для уже существующего объекта базы данных, в случае таблицы поведение индекса идентично поведению базового объекта, т. е. при создании планов выполнения создается один и тот же план независимо от использования имени таблицы или соответствующего синонима.


на самом деле, я столкнулся с gotcha при использовании индексов.... Я не уверен, есть ли способ создать связанные сообщения на этом сайте, но вот ссылка на мою проблему с синонимами и табличными индексами.

таблица SQL Server синонимы с индексами


да, синонимы могут использоваться как слой абстракции или слой косвенности. Например, если вам нужно получить доступ к объектам во внешней базе данных, где фактическое имя базы данных не будет известен до времени выполнения. Вы можете написать свой sql, ссылаясь на объекты по имени синонима, а затем динамически создавать синонимы позже.

нет индекса gotchas: если синоним ссылается на таблицу или индексированное представление, то любые индексы, определенные на этих объектах, находятся в играть.

производительность должна совпадать с явной ссылкой на объект по полному имени.