ну, ну, ну.. эк вас торкнуло-то
Цитата:либо поле iddoc в таблице _1sjourn уникально только в пределах вида документа????
Идентификатор документа (значение в поле iddoc)
уникально в пределах всей базы данных.
Цитата:Я исходил из принципа, что iddoc уникально, если база нераспределенная. (где-то вычитал).
Тоже не правда. Идентификатор документа (iddoc char(9)) состоит из 6-ти символов идентификатора объекта и 3-х символов идентификатора базы данных. Идентификатор базы данных в нераспределенной базе 3 пробела. Идентификаторы объектов (обычное 32-разрядное число записанное в 36-ричной системе счисления: 6 символов) в системе распределенной базы данных действительно могут быть не уникальны, т.к. могут быть сформированы условно параллельно. Но в целом, значение идентификатора документа (6+3 = 9 символов) всегда уникальны.
Цитата:Чтобы метапарсер правильно все разобрал.
ведь $ПКО.Сумма и $ПКО.Сумма разные поля в sql таблицах.
Тоже не правда. Метапарсер учитывает через алиас какой таблицы идет обращение к реквизиту данных и поставит в запрос правильное имя поля таблицы.
Теперь по самому условию связи: это сделано исключительно для оптимизации. Если мы уберем из условий связи условие по виду документа - результат запроса будет такой же.
Характер запроса подразумевает наличие нескольких связей (left join) с таблицами шапок разных видов документов. НО(!) сервер не знает логику заполнения наших таблиц, он понятия не имеет, что для каждой записи исходных данных соединится только одна левая связь, поэтому он для каждой записи исходных данных будет пытаться соединять каждую таблицу шапок. Конечно он найдет соответствующую запись только в одном соединении, но для всех остальных соединений он тоже сделает проход по индексу (iddoc), даже не смотря на то, что этот индекс является кластерным и первичным ключом - это все равно впустую потраченное время и загрузка диска (чтения).
Поэтому, т.к. у нас есть информация о виде документа, мы можем избавить его от этой работы: т.к. условие связи не выполнится в пределах исходных данных (не тот вид документа), он вообще не будет делать проход по индексу. Т.о. при правильной постановке условия связи мы уменьшим количество ридов из БД.