ДБО. префикс в именах объектов базы данных, могу ли я игнорировать его?
Я ищу политику выполнения по умолчанию для работы с префиксом .dbo.
Я понимаю, что дбо. префикс - это больше, чем синтаксический шум, однако я прошел через последние 8 лет разработки на основе MS, пропустив ввод dbo. префикс и игнорирование его функции.
Помимо проблемы с производительностью с сохраненными блокировками компиляции proc, существует недостаток в пропуске ввода ".dbo" в SQLqueries и хранимых процедурах?
Дальнейший справочник: вся моя разработка - это средний уровень среднего уровня, основанный на интегрированной безопасности на основе учетной записи службы среднего уровня.
Ответы
Ответ 1
[DBO]. [Ххх]
Механизм SQL Server всегда анализирует запрос на куски, если вы не используете префикс, который определенно будет искать объект схожим именем с разными пользователями, прежде чем он будет использовать [dbo]. Я бы посоветовал вам следовать префиксному механизму не только для того, чтобы удовлетворить лучшие практики, но и избежать сбоев в производительности и сделать код масштабируемым.
Я не знаю, что ответил на ваш вопрос, но это только моя доля знаний.
Ответ 2
В большинстве случаев вы можете его игнорировать. Иногда вам придется вводить его. Иногда, когда вы должны вводить его, вы можете просто ввести дополнительный ".":
SELECT * FROM [LinkedServer].[Database]..[Table]
Вам нужно будет начать просмотр, если вы начнете использовать дополнительные схемы намного больше, где у вас могут быть две схемы в одной базе данных, в которых есть таблицы с тем же именем.
Ответ 3
Основной проблемой является не безопасность, это разрешение конфликтов имен, в случае, когда ваше приложение когда-либо будет развернуто бок о бок с другим приложением, использующим те же имена в базе данных.
Если вы упаковываете и продаете свой продукт, я бы настоятельно советовал использовать схемы, ради ваших клиентов. Если вы разрабатываете для одного конкретного магазина, то это не вызывает большого беспокойства.
Ответ 4
Да, вы можете игнорировать - по большей части - если вы никогда не создавали ничего за пределами (по умолчанию) схемы "dbo". Одно место, которое вы не можете игнорировать, - это вызов функции сохранения, которая всегда должна иметь "двухчастную" нотацию:
select * from dbo.myFunc
Однако считается, что всегда рекомендуется использовать "dbo". префикс (или другие префиксы схемы, если ваша база данных имеет несколько схем).
Марк
Ответ 5
", однако я прошел через последние 8 лет разработки на основе MS, пропустив ввод dbo prexfix и игнорируя его функцию.
Это ваш ответ. Если ваша БД работает нормально, вы в порядке. Лучшие практики не заменяют реальных испытаний на вашей реальной системе. Если ваша производительность прекрасна, а обслуживание в порядке, ваше время лучше проводить в другом месте, где вы можете получить лучший взмах для своей пословичной доллар.
Ответ 6
После работы в мире оракула я бы посоветовал не пропускать объявление схемы. Помните, что версии SQL Server после 7.0 поддерживают несколько схем на базу данных - важно различать их, чтобы убедиться, что вы захватываете правильные таблицы.
Если вы можете убедиться, что в базе данных никогда не будет двух отдельных пространств имен схемы, вы можете игнорировать их. ДБО. префикс не должен ничего делать, чтобы влиять на производительность сам по себе - синтаксический анализ - такая небольшая часть SQL-запроса, чтобы быть незначительной.