ДБО. префикс в именах объектов базы данных, могу ли я игнорировать его?

Я ищу политику выполнения по умолчанию для работы с префиксом .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-запроса, чтобы быть незначительной.