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

Откуда:
Сообщений: 1090
	select sc.descr from dh14221 h (nolock) 
		inner join dt14221 t on h.iddoc=t.iddoc 
		inner join sc1817 sc on sc.id=right(t.sp14213,9) -- <---- вот здесь
	where sp14209 like '%LVBR1'
3 окт 12, 15:49    [13262663]     Ответить | Цитировать Сообщить модератору
 Re: Насколько стремно использовать такую конструкцию  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5116
а что вас смущает?
3 окт 12, 16:15    [13262839]     Ответить | Цитировать Сообщить модератору
 Re: Насколько стремно использовать такую конструкцию  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Не стремнее, чем условие в where.
3 окт 12, 16:17    [13262857]     Ответить | Цитировать Сообщить модератору
 Re: Насколько стремно использовать такую конструкцию  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Насколько это позволяют требования к задаче и согласно планов.
Правила распространяются на семантику, а не на синтаксис.

1. Если sc.id есть VarChar(9) то ладно. Если нет, то лучше явно преобразовать до его типа.
2. Если это код представления, и его будут юзать во многих местах, то указанная вами связка односторонняя.
Скуль не сможет воспользоваться индексом на t.sp14213 если будет знать sc.id
Да и вообще такая запись настораживает - что-то не то в проектировании системы.

PS. Недопустимые ошибки:
1. Не указаны схемы у объектов (таблицы/представлений dh14221, dt14221 и sc1817)
2. Не указаны алиасы (sp14209)
Названия умиляют (надеюсь вы просто их перебили).
NoLock - моветон
3 окт 12, 16:18    [13262861]     Ответить | Цитировать Сообщить модератору
 Re: Насколько стремно использовать такую конструкцию  [new]
waszkiewicz
Member

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

- это запрос к базе 1с 7.7 - названия полей оттуда.
- схема везде dbo - не сильно в курсе, как неуказание повлияет на выполнение запроса
в одном из полей хранится ссылка на документ неопределенного вида, поэтому в текстовом поле содержится еще и уточнение вида документа (' 1EH 1RPZ2F00' как-то так). Мне же нужно связать с журналом документов по ид документа. Поэтому и вопрос.
3 окт 12, 16:30    [13262962]     Ответить | Цитировать Сообщить модератору
 Re: Насколько стремно использовать такую конструкцию  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
waszkiewicz
как неуказание повлияет на выполнение запроса
Это откладывает компиляцию и вызывает механизм поиска объектов, сначала в окружении схемы пользователя, потом схемы владельца и т.д. Вроде ещё влияет на кеширование планов.
Если вы явно укажете, то никаких "если" всё однозначно и быстро.

waszkiewicz
в одном из полей хранится ссылка на документ неопределенного вида, поэтому в текстовом поле содержится еще и уточнение вида документа (' 1EH 1RPZ2F00' как-то так). Мне же нужно связать с журналом документов по ид документа. Поэтому и вопрос.
Ну какова реализация такие и проблемы.
Было бы у вас явно FK (связь документа на таблицы, или в документе или в отдельной табле) не было бы проблем.
3 окт 12, 17:30    [13263282]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить