Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Явное указание/неуказание схемы в запросе.  [new]
balykovdron
Member

Откуда:
Сообщений: 118
Руководитель проекта настаивает на том, чтобы во всех проектах не указывать имя схемы в запросах.
Например select * from users вместо select * from dbo.users

Он определяет свое требование тем, что в проекте навряд ли появится другая схема и это лишь лишние буквы в запросах.
Не могу убедить его, что так будет лучше. Помогите убедить явными аргументами.

Просьба писать сюда только аргументы и не обсуждать руководителя.
20 сен 16, 10:50    [19686312]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
в гугуле вообще забанили ?

TOP 5 Topics
20 сен 16, 11:15    [19686449]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4539
balykovdron
Не могу убедить его, что так будет лучше. Помогите убедить явными аргументами.

Приведите явные аргументы за "так будет лучше".
С учетом вышесказаного.
20 сен 16, 11:16    [19686459]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
Однажды я напоролся на неприятности.
Рассылал очередной скрипт для исправления ошибок по филиалам.
И в то время никогда не писал схему.
С одного из филиалов поступило сообщение, что "ничего не изменилось!".
Я с ними прмучался несколько дней, пока не выяснилось, что тамошний админ завёл свою личную схему
и все присылаемые изменения накатывал только там.
20 сен 16, 11:24    [19686535]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4539
iap
Однажды я напоролся на неприятности.
Рассылал очередной скрипт для исправления ошибок по филиалам.
И в то время никогда не писал схему.
С одного из филиалов поступило сообщение, что "ничего не изменилось!".
Я с ними прмучался несколько дней, пока не выяснилось, что тамошний админ завёл свою личную схему
и все присылаемые изменения накатывал только там.

Вот! Аргумент №1.
20 сен 16, 11:32    [19686595]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
aleks2
Guest
balykovdron
Руководитель проекта настаивает на том, чтобы во всех проектах не указывать имя схемы в запросах.
Например select * from users вместо select * from dbo.users

Он определяет свое требование тем, что в проекте навряд ли появится другая схема и это лишь лишние буквы в запросах.
Не могу убедить его, что так будет лучше. Помогите убедить явными аргументами.

Просьба писать сюда только аргументы и не обсуждать руководителя.


Зато на "отсутствии схемы" можно построить защиту и разграничение доступа.

select * from users


получит users из дефолтной схемы пользователя. Некоторые системы этим пользуются.

Так что, не фсе так однозначно.

ЗЫ. А лишних буковок не бывает.
20 сен 16, 11:32    [19686599]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
1) отсутствие схемы это тоже трата ресурсов хоть и малая на её определение
2) вариант как у iap сплошь и рядом
20 сен 16, 11:35    [19686614]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4539
Думаю, что ваш руководитель считает, что запрос без указания схемы будет работать быстрее?
Типа меньше символов, быстрее запрос передается?

"У нас писарь в уезде был, в пачпортах год
рождения одной только циферкой обозначал.
Чернила, шельмец, вишь, экономил.
Потом дело прояснилось, его в острог,
а пачпорта переделывать уж не стали.
Документ все-таки.
Ефимцев, купец, третьего года рождения
записан, Куликов - второго…
Культякин - первого."
20 сен 16, 11:39    [19686640]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
Wlr-l
Member

Откуда:
Сообщений: 638
aleks2,

Зато на "отсутствии схемы" можно построить защиту и разграничение доступа.


Как раз явное указание схемы, отличной от dbo, и обеспечивает защиту и разграничение доступа, без всякого "не фсе так однозначно".
20 сен 16, 13:20    [19687185]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
andrey odegov
Member

Откуда:
Сообщений: 474
http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/11/bad-habits-to-kick-avoiding-the-schema-prefix.aspx
20 сен 16, 13:39    [19687282]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
Вот такой реальный случай сразу навеяло. Дело было с Ораклом, но к данному топику вполне. Стал запрос выдавать задвоенное кол-во записей. Причем запрос, к которому просто придраться не к чему. Путем исследования выяснилось, что типичный ораклячий подзапрос константы "SELECT sysdate FROM dual" выдает 2 записи вместо одной. Оказалось, что какой-то нехороший петрушка в дефолтной схеме создал свою таблицу dual с двумя записями, и видимо издали ржал, наблюдая сие. Очевидно, что указание схемы sys.dual не позволило бы быть такому розыгрышу.
20 сен 16, 16:01    [19688159]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
ziktuw
Вот такой реальный случай сразу навеяло. Дело было с Ораклом, но к данному топику вполне. Стал запрос выдавать задвоенное кол-во записей. Причем запрос, к которому просто придраться не к чему. Путем исследования выяснилось, что типичный ораклячий подзапрос константы "SELECT sysdate FROM dual" выдает 2 записи вместо одной. Оказалось, что какой-то нехороший петрушка в дефолтной схеме создал свою таблицу dual с двумя записями, и видимо издали ржал, наблюдая сие. Очевидно, что указание схемы sys.dual не позволило бы быть такому розыгрышу.
А это не косяк Oracle часом?
Если не указать схему, то он делает UNION всех таблиц с указанным именем что ли?
А если у них структура совершенно разная?
20 сен 16, 16:05    [19688178]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
iap
ziktuw
Вот такой реальный случай сразу навеяло. Дело было с Ораклом, но к данному топику вполне. Стал запрос выдавать задвоенное кол-во записей. Причем запрос, к которому просто придраться не к чему. Путем исследования выяснилось, что типичный ораклячий подзапрос константы "SELECT sysdate FROM dual" выдает 2 записи вместо одной. Оказалось, что какой-то нехороший петрушка в дефолтной схеме создал свою таблицу dual с двумя записями, и видимо издали ржал, наблюдая сие. Очевидно, что указание схемы sys.dual не позволило бы быть такому розыгрышу.
А это не косяк Oracle часом?
Если не указать схему, то он делает UNION всех таблиц с указанным именем что ли?
А если у них структура совершенно разная?

есть таблица с двумя записями, дёргаем SELECT 5 FROM TABEL как это это делают для DUAL и пофиг что там за структура
20 сен 16, 16:07    [19688192]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
TaPaK
iap
пропущено...
А это не косяк Oracle часом?
Если не указать схему, то он делает UNION всех таблиц с указанным именем что ли?
А если у них структура совершенно разная?

есть таблица с двумя записями, дёргаем SELECT 5 FROM TABEL как это это делают для DUAL и пофиг что там за структура
Так всё равно из какой-то одной таблицы должен селектить!
20 сен 16, 16:09    [19688205]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
iap,

правильно из одной и берёт, там где схема ближе :)
20 сен 16, 16:10    [19688208]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
TaPaK
iap,

правильно из одной и берёт, там где схема ближе :)
А! Что-то я невнимателен.
20 сен 16, 16:13    [19688224]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
aleks2
Guest
Wlr-l
aleks2,

Зато на "отсутствии схемы" можно построить защиту и разграничение доступа.


Как раз явное указание схемы, отличной от dbo, и обеспечивает защиту и разграничение доступа, без всякого "не фсе так однозначно".


Если ты такой умный, то почему беднее, чем билли гейтс?

ЗЫ. Канешно, макрософтовцы дураки. И разрешили не писать схему "назло врагам".
20 сен 16, 17:35    [19688728]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
ну и прочие радости в виде

автор
SQL Server does cache the query plan for ad-hoc queries, but if the schema name isn’t present in the query the cache can’t be re-used for other users, only for the same user.
20 сен 16, 18:00    [19688826]     Ответить | Цитировать Сообщить модератору
 Re: Явное указание/неуказание схемы в запросе.  [new]
ппп-пп
Guest
aleks2
Зато на "отсутствии схемы" можно построить защиту и разграничение доступа.


Сочувствую такой архитектуре и таким системам.
20 сен 16, 18:47    [19689002]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить