SQL Server-синонимы советы и рекомендации? [закрытый]
в последнее время я делаю много рефакторинга БД, и синонимы пришли невероятно полезными. Когда я изначально поставлены в синонимы, я думаю им будет очень временным, а я рефакторинг. Теперь я думаю,что могут быть веские причины сохранить некоторые из этих синонимов.
кто-нибудь использовал их как полноценный удар слой абстракции?
каковы затраты на производительность?
любые gotchas с индексы?
советы или хитрости?
мой первый вопрос, поэтому, пожалуйста, быть нежным.
спасибо
3 ответов
поскольку синоним является абстракцией / альтернативным именем для уже существующего объекта базы данных, в случае таблицы поведение индекса идентично поведению базового объекта, т. е. при создании планов выполнения создается один и тот же план независимо от использования имени таблицы или соответствующего синонима.
на самом деле, я столкнулся с gotcha при использовании индексов.... Я не уверен, есть ли способ создать связанные сообщения на этом сайте, но вот ссылка на мою проблему с синонимами и табличными индексами.
да, синонимы могут использоваться как слой абстракции или слой косвенности. Например, если вам нужно получить доступ к объектам во внешней базе данных, где фактическое имя базы данных не будет известен до времени выполнения. Вы можете написать свой sql, ссылаясь на объекты по имени синонима, а затем динамически создавать синонимы позже.
нет индекса gotchas: если синоним ссылается на таблицу или индексированное представление, то любые индексы, определенные на этих объектах, находятся в играть.
производительность должна совпадать с явной ссылкой на объект по полному имени.