Имя: Пароль:
1C
1С v8
Почему Внешние источники данных работает медленее COM-соединения
0 ИС-2
 
21.04.14
08:24
Есть база с 1 РС (период, 3 измерения строка(36)). К ней подключался через внешний источники данных.
В начале, когда было мало данных, запрос через внешний источники данных работал быстро. По мере накопления данных стал работать медленнее.
Сейчас переписал на подключение к базе через COM - стало летать.

В чем причина такой тормознутости? Запрос остался тем же...
1 NcSteel
 
21.04.14
08:27
так как это нарушение лицензионного соглашения.
2 shuhard
 
21.04.14
08:31
(0) тормоз ты - забыл индексы
3 ИС-2
 
21.04.14
08:40
(2) а какая разница? И там и индексы одинаковые. Вопрос в том, почему 2 технологии так сильно различаются по скорости работы
4 NcSteel
 
21.04.14
08:44
разницы по скорости нет, есть разница в исполняемом запросе - показывай оба.
5 ИС-2
 
21.04.14
09:03
вот внешний источник данных:

        "ВЫБРАТЬ
        |    ДАТАВРЕМЯ(1, 1, 1) КАК Период,
        |    dbo__InfoRg8._Period КАК Период4000,
        |    ДобавитьКДате(dbo__InfoRg8._Period,день,-730000) как ПериодСмещение,
        //    |    ДобавитьКДате(dbo__InfoRg8._Fld16,год,2000) КАК Период_Минус2000,
        |    dbo__InfoRg8._Fld14 КАК Контрагент_GUID,
        |    dbo__InfoRg8._Fld15 КАК Отдел_GUID,
        |    dbo__InfoRg8._Fld9 КАК Организация_GUID,
        |    dbo__InfoRg8._Fld10 КАК СуммаПросрочено,
        |    dbo__InfoRg8._Fld11 КАК КоличествоДнейПросрочено,
        |    dbo__InfoRg8._Fld12 КАК СуммаДолга
        |ИЗ
        |    ВнешнийИсточникДанных._БазаИстории.Таблица.dbo__InfoRg8 КАК dbo__InfoRg8
        |ГДЕ
        |    выбор когда &ДнейПросрочено = 0 тогда истина иначе dbo__InfoRg8._Fld11 >= &ДнейПросрочено конец
        |    И выбор когда &ОтборПоКонтрагентам тогда dbo__InfoRg8._Fld14 В(&МассивКонтрагент_GUID) иначе истина конец
        |    И выбор когда &ОтборПоОтделу тогда dbo__InfoRg8._Fld15 В(&МассивОтделов_GUID) иначе истина конец
        |    И выбор когда &ОтборПоОрганизации тогда dbo__InfoRg8._Fld9 В(&МассивОрганизаций_GUID) иначе истина конец
        //    |    и dbo__InfoRg8._Fld16 между &ДатаНач и &ДатаКон  ";
        |    И ДобавитьКДате(dbo__InfoRg8._Period,день,-730000) МЕЖДУ &ДатаНач4000 И &ДатаКон4000";
6 ИС-2
 
21.04.14
09:04
запрос к com

"ВЫБРАТЬ
        |    _ПросроченнаяЗадолженностьПоДокументам.Период,
        |    _ПросроченнаяЗадолженностьПоДокументам.Контрагент_GUID,
        |    _ПросроченнаяЗадолженностьПоДокументам.Отдел_GUID,
        |    _ПросроченнаяЗадолженностьПоДокументам.Организация_GUID,
        |    _ПросроченнаяЗадолженностьПоДокументам.СуммаПросрочено,
        |    _ПросроченнаяЗадолженностьПоДокументам.КоличествоДнейПросрочено,
        |    _ПросроченнаяЗадолженностьПоДокументам.СуммаДолга,
        |    _ПросроченнаяЗадолженностьПоДокументам.ЭтоИзменениеЗаписей,
        |    _ПросроченнаяЗадолженностьПоДокументам.ИнформацияОбИзмененииЗаписей,
        |    _ПросроченнаяЗадолженностьПоДокументам.Контрагент,
        |    _ПросроченнаяЗадолженностьПоДокументам.Организация,
        |    _ПросроченнаяЗадолженностьПоДокументам.Отдел
        |ИЗ
        |    РегистрСведений._ПросроченнаяЗадолженностьПоДокументам КАК _ПросроченнаяЗадолженностьПоДокументам
        |ГДЕ
        |    ВЫБОР
        |            КОГДА &ДнейПросрочено = 0
        |                ТОГДА ИСТИНА
        |            ИНАЧЕ _ПросроченнаяЗадолженностьПоДокументам.КоличествоДнейПросрочено >= &ДнейПросрочено
        |        КОНЕЦ
        |    И ВЫБОР
        |            КОГДА &ОтборПоКонтрагентам
        |                ТОГДА _ПросроченнаяЗадолженностьПоДокументам.Контрагент_GUID В (&МассивКонтрагент_GUID)
        |            ИНАЧЕ ИСТИНА
        |        КОНЕЦ
        |    И ВЫБОР
        |            КОГДА &ОтборПоОтделу
        |                ТОГДА _ПросроченнаяЗадолженностьПоДокументам.Отдел_GUID В (&МассивОтделов_GUID)
        |            ИНАЧЕ ИСТИНА
        |        КОНЕЦ
        |    И ВЫБОР
        |            КОГДА &ОтборПоОрганизации
        |                ТОГДА _ПросроченнаяЗадолженностьПоДокументам.Организация_GUID В (&МассивОрганизаций_GUID)
        |            ИНАЧЕ ИСТИНА
        |        КОНЕЦ
        |    И _ПросроченнаяЗадолженностьПоДокументам.Период МЕЖДУ &ДатаНач И &ДатаКон";
7 NcSteel
 
21.04.14
09:05
Уже минимум:
|    ДобавитьКДате(dbo__InfoRg8._Period,день,-730000) как ПериодСмещение,

есть различия, ты хоть запросы приведи к одному виду, что бы говорить о различной скорости.
8 ИС-2
 
21.04.14
09:08
(7) это проблема со смешением дат - вместо 2012 отображается 4012
9 ДенисЧ
 
21.04.14
09:10
(8) И что? Запросы - то разные
10 ИС-2
 
21.04.14
09:15
не исключено, что оптимизатор не может обработать
ДобавитьКДате(dbo__InfoRg8._Period,день,-730000)

но не на столько же
11 NcSteel
 
21.04.14
09:21
(10) У тебя фактически доп цикл в запросе. Что ты еще хочешь...
Программист всегда исправляет последнюю ошибку.