![]() |
![]() |
|
Свойства номенклатуры - долго. | ☑ | ||
---|---|---|---|---|
0
Темный
23.06.11
✎
16:30
|
Добрый день, коллеги. Подскажите, как ускорить. Надо добавить колонку со свойством номенклатуры в документ. В процедуре "При получении данных" сделал так:
Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл ЗапросКСвойствам = Новый Запрос; ЗапросКСвойствам.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1 | ЗначенияСвойствОбъектов.Значение.Представление |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект.Ссылка = &СсылкаНом | И ЗначенияСвойствОбъектов.Свойство.Ссылка = &СсылкаСв"; ЗапросКСвойствам.УстановитьПараметр("СсылкаСв",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("000000013")); ЗапросКСвойствам.УстановитьПараметр("СсылкаНом",Элемент.ТекущаяСтрока.Номенклатура.Ссылка); Выборка = ЗапросКСвойствам.Выполнить().Выбрать(); Выборка.Следующий(); СамаЯчейка = ОформлениеСтроки.Ячейки.Производитель; СамаЯчейка.ОтображатьТекст = Истина; СамаЯчейка.Текст = Строка(Выборка.ЗначениеПредставление); КонецЦикла; Разумеется, дико тормозит. Какие будут идеи, как сделать хорошо? |
|||
1
H A D G E H O G s
23.06.11
✎
16:32
|
| ЗначенияСвойствОбъектов.Значение.Представление
|ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект.Ссылка = &СсылкаНом | И ЗначенияСвойствОбъектов.Свойство.Ссылка = &СсылкаСв"; заменить на | ЗначенияСвойствОбъектов.Значение.Представление |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект= &СсылкаНом | И ЗначенияСвойствОбъектов.Свойство= &СсылкаСв"; |
|||
2
golden-pack
23.06.11
✎
16:33
|
Цикл
ЗапросКСвойствам = Новый Запрос; |
|||
3
H A D G E H O G s
23.06.11
✎
16:33
|
Убрать запрос из циула
|
|||
4
Tapo4ek
23.06.11
✎
16:33
|
1. Запрос в цикле - даже при сдаче спеца за это снизят. Формируй одним запросом а потом поиск в полученной тз в цикле.
2. Если уж совсем свойства - дико большая таблица, то можно при открытии ее получить в переменную. Вероятность изменения свойства "крайне мала")) Ну или каждую минуту ее обновлять. |
|||
5
H A D G E H O G s
23.06.11
✎
16:33
|
Привести к типу результат через Выразить()
|
|||
6
Генератор
23.06.11
✎
16:34
|
да еще и НайтиПоКоду в цикле
|
|||
7
H A D G E H O G s
23.06.11
✎
16:34
|
(4)
Вероятность изменения свойства "крайне мала")) Ну или каждую минуту ее обновлять. Бред |
|||
8
Maxus43
23.06.11
✎
16:34
|
Делать при открытии - заполняеш по всем в ТЧ.
И при изменениии номенклатурины в ТЧ - вытаскиваеш свойства. |
|||
9
5 Элемент
23.06.11
✎
16:34
|
>> Элемент.ТекущаяСтрока.Номенклатура.Ссылка
заменить на Элемент.ТекущаяСтрока.Номенклатура |
|||
10
5 Элемент
23.06.11
✎
16:35
|
За такие вопросы авторам нужно обрезать радугу до 2мм
|
|||
11
H A D G E H O G s
23.06.11
✎
16:35
|
Короче код - пример того, как вообще не надо писать код.
Образчик маразма и ошибок. |
|||
12
golden-pack
23.06.11
✎
16:35
|
ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("000000013")
|
|||
13
Jstunner
23.06.11
✎
16:35
|
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1"
нормальная тема! :) |
|||
14
Maxus43
23.06.11
✎
16:36
|
налетели то
|
|||
15
golden-pack
23.06.11
✎
16:36
|
СамаЯчейка = ОформлениеСтроки.Ячейки.Производитель;
СамаЯчейка.ОтображатьТекст = Истина; СамаЯчейка.Текст = Строка(Выборка.ЗначениеПредставление); заменить на ОформлениеСтроки.Ячейки.Производитель.УстановитьТекст(трока(Выборка.ЗначениеПредставление)); |
|||
16
Tapo4ek
23.06.11
✎
16:36
|
(7) Мотивируй или предложи быструю альтернативу.
|
|||
17
Генератор
23.06.11
✎
16:37
|
мой вывод адресов в списке контрагентов, вроде не тормозит:
Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок) Контрагенты = Новый Массив(); Для Каждого Оформление Из ОформленияСтрок Цикл ДанныеСтроки = Оформление.ДанныеСтроки; Если ДанныеСтроки.ЭтоГруппа Тогда Продолжить; КонецЕсли; Контрагенты.Добавить(ДанныеСтроки.Ссылка); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КонтактнаяИнформация.Объект, | КонтактнаяИнформация.Представление |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ |КонтактнаяИнформация.Тип = &Тип |И КонтактнаяИнформация.Вид = &Вид |И КонтактнаяИнформация.Объект в(&Контрагенты)"; Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Адрес); Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента); Запрос.УстановитьПараметр("Контрагенты",Контрагенты); Выборка = Запрос.Выполнить().Выбрать(); Для Каждого Оформление Из ОформленияСтрок Цикл ДанныеСтроки = Оформление.ДанныеСтроки; Если ДанныеСтроки.ЭтоГруппа Тогда Продолжить; КонецЕсли; Выборка.Сбросить(); Если Выборка.НайтиСледующий(ДанныеСтроки.Ссылка,"Объект") Тогда Оформление.Ячейки.Адрес.УстановитьТекст(Выборка.Представление); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
18
golden-pack
23.06.11
✎
16:37
|
(14) заклевали , а Темный наверно вбросил чтобы посмеяться над советчиками
|
|||
19
golden-pack
23.06.11
✎
16:38
|
(16) все правильно - это бред. Свойства разные бывают.
|
|||
20
5 Элемент
23.06.11
✎
16:38
|
(18) это наверное вообще НеТемный
|
|||
21
H A D G E H O G s
23.06.11
✎
16:38
|
(16) Быстрая альтернатива - написать все правильно.
|
|||
22
H A D G E H O G s
23.06.11
✎
16:39
|
(17) Херово
|
|||
23
H A D G E H O G s
23.06.11
✎
16:39
|
Ставлю бутылку кефира - Темный - семерошник.
|
|||
24
Tapo4ek
23.06.11
✎
16:40
|
(21) "Идеальный мир - это мир без косяков" (С)
|
|||
25
Темный
23.06.11
✎
16:40
|
:-) Спасибо за быстрые ответы, коллеги!
Теперь по пунктам. |
|||
26
Темный
23.06.11
✎
16:40
|
(1) Сделаю. Не думаю, правда, что повысит быстродействие на порядок;
|
|||
27
Темный
23.06.11
✎
16:41
|
(2). Точно. Знаю же об этом. Вынесу текст из цикла;
|
|||
28
Jstunner
23.06.11
✎
16:41
|
(26) +1
вообще не заметно будет |
|||
29
5 Элемент
23.06.11
✎
16:41
|
(23) они все такие?
|
|||
30
Темный
23.06.11
✎
16:42
|
(3) Убрать запрос из цикла? То есть, сделать как в (17)?
|
|||
31
H A D G E H O G s
23.06.11
✎
16:43
|
(28) Бугага
|
|||
32
SUA
23.06.11
✎
16:43
|
был хороший вопрос - а что вообще за свойство и как часто оно меняется?
|
|||
33
H A D G E H O G s
23.06.11
✎
16:43
|
(29) Почти.
Опасные аж жуть. |
|||
34
Темный
23.06.11
✎
16:43
|
(6) Там 20 строк... Думаю, миллисекунды на это уходят. Но, вынесу, оф коз.
|
|||
35
Темный
23.06.11
✎
16:44
|
(5) В запросе? Выразить КАК Строка()?
|
|||
36
Темный
23.06.11
✎
16:45
|
(8) Непонятно, как быть с новым, еще не записанным документом
|
|||
37
Темный
23.06.11
✎
16:46
|
(13) Ну это можно убрать :-)
|
|||
38
Темный
23.06.11
✎
16:46
|
(15) Ускорит в 10 раз?
|
|||
39
Axel2009
23.06.11
✎
16:46
|
(35) ниче не надо выражать.
| ЗначенияСвойствОбъектов.Объект.Ссылка = &СсылкаНом | И ЗначенияСвойствОбъектов.Свойство.Ссылка = &СсылкаСв за это уволил бы. убрать ".Ссылка". и будет все летать. с выразить все еще дольше. |
|||
40
Axel2009
23.06.11
✎
16:47
|
(39)+ и это
ЗапросКСвойствам.УстановитьПараметр("СсылкаНом",Элемент.ТекущаяСтрока.Номенклатура.Ссылка); на ЗапросКСвойствам.УстановитьПараметр("СсылкаНом",Элемент.ТекущаяСтрока.Номенклатура); в общем уволил бы уже. |
|||
41
Темный
23.06.11
✎
16:47
|
(17) Склоняюсь к такому варианту, но H A D G E H O G s говорит, что плохо будет... Может, он пояснит свою позицию?
|
|||
42
5 Элемент
23.06.11
✎
16:47
|
(39) а я бы тебя уволил за "ниче не надо выражать"
|
|||
43
Axel2009
23.06.11
✎
16:48
|
(42) если нет обращение через точку к Объект. то выражать не надо. все только тормозит. поэтому увольняй себя сам.
|
|||
44
Генератор
23.06.11
✎
16:48
|
(41) вобще сделано с типового справочника "Сотрудники"
|
|||
45
H A D G E H O G s
23.06.11
✎
16:49
|
(39) Почему ты не так?
"ВЫБРАТЬ | ЗначенияСвойствОбъектов.Значение.Представление |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект как Справочник.Контрагенты) В (&СписокКонтрагентов) | И ЗначенияСвойствОбъектов.Свойство= &СсылкаСв"; |
|||
46
5 Элемент
23.06.11
✎
16:49
|
(43) ))) тут разве нет обращения "Значение.Представление"?
|
|||
47
Темный
23.06.11
✎
16:49
|
(32) Свойство меняется редко.
|
|||
48
H A D G E H O G s
23.06.11
✎
16:50
|
(41)
|И КонтактнаяИнформация.Объект в(&Контрагенты)" заменить на |И ВЫРАЗИТЬ (КонтактнаяИнформация.Объект как Справочник.Контрагенты) в (&Контрагенты)" |
|||
49
H A D G E H O G s
23.06.11
✎
16:50
|
(43) Уволь себя.
|
|||
50
5 Элемент
23.06.11
✎
16:51
|
(43) посмотри во что превращается запрос а потом делай такие выводы
|
|||
51
H A D G E H O G s
23.06.11
✎
16:51
|
(43) Чем более подробно опишешь составные типы - тем меньше запрос будет болтаться по БД.
|
|||
52
5 Элемент
23.06.11
✎
16:51
|
ЗначенияСвойствОбъектов.Значение составной тип
и обращение через точку к полям от "Значение" приводит сам знаешь к чем |
|||
53
Axel2009
23.06.11
✎
16:53
|
(45) проверял я это. время ухудшается только. по замеру. вот если после ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект как Справочник.Контрагенты) ставить .Наименование тогда да, желательно выразить.
(52) знаю. тока там не настолько много строк чтобы все было так плохо. но в целом для оптимизации можно. |
|||
54
Широкий
23.06.11
✎
16:54
|
ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект как Справочник.Контрагенты) В (&СписокКонтрагентов)
"Выразить" лишнее будет.. там тип и так проверяется. ЗначенияСвойствОбъектов.Значение.Представление 1 .Здесь именно тоже надо выразить. 2. Если точно знаешь основное представление объекта то получай конкретно его (код или наименование) |
|||
55
5 Элемент
23.06.11
✎
16:54
|
(48) >> ВЫРАЗИТЬ (КонтактнаяИнформация.Объект как Справочник.Контрагенты) в (&Контрагенты)
это не нужно делать |
|||
56
Axel2009
23.06.11
✎
16:54
|
(51) если нет обращения через точку к реквизиту, то это ничего не изменит. только лишнее условие добавит никому не нужное.
|
|||
57
Maxus43
23.06.11
✎
16:55
|
(36) Для новых элементов свойтсво подтягивай 1 раз, при изменении номенклатуры в ТЧ
|
|||
58
Axel2009
23.06.11
✎
16:55
|
(54) тип везде проверяется.
|
|||
59
Генератор
23.06.11
✎
16:55
|
вы лучше автора запрос оптимизируйте, че до контрагентов докопались то?
|
|||
60
Темный
23.06.11
✎
16:57
|
Давайте так, коллеги. Поэкспериментируем, так сказать.
1 этап. Уберу "ссылки", вынесу "НайтиПоКоду", и текст запроса из цикла. Посмотрим, будет ли "летать" (сомневаюсь, есличесно) 2 этап. Сделаю как в (17), с рекомендациями. Думаю, эффект будет более явным :-) |
|||
61
H A D G E H O G s
23.06.11
✎
16:57
|
(54) 1С настолько умная, что проверяет каждый элемент массива?
Счаст протестим. |
|||
62
Fragster
гуру
23.06.11
✎
16:58
|
та не, просто в случае проверки ссылок нафиг вообще что-то проверять?
|
|||
63
Tapo4ek
23.06.11
✎
16:58
|
За все увольнения бы уволил. При обращении Строчка.Номенклатура автоматом на кэшируется представление и ССЫЛКА объекта. Так что хоть Номенклатура.Ссылка что Номенклатура.Ссылка.Ссылка.Ссылка.Ссылка = побую.
|
|||
64
5 Элемент
23.06.11
✎
16:58
|
(61) она разве не по одному полю условие делает?
|
|||
65
H A D G E H O G s
23.06.11
✎
16:59
|
(62) Доп. фильтр по TRef?
|
|||
66
5 Элемент
23.06.11
✎
17:00
|
(65) а зачем ссылка разве не уникальная?
|
|||
67
Широкий
23.06.11
✎
17:01
|
(66) Только в разрезе одной таблицы
|
|||
68
H A D G E H O G s
23.06.11
✎
17:09
|
Внезапно!
Без ВЫРАЗИТЬ exec sp_executesql N'SELECT T1._Fld14443 FROM _InfoRg14439 T1 WITH(NOLOCK) WHERE (T1._Fld14440_TYPE = P1 AND T1._Fld14440_RTRef = @P2 AND T1._Fld14440_RRRef IN (@P3))',N'P1 varbinary(1),@P2 varbinary(4),@P3 varbinary(16)',0x08,0x00000061,0xBF180018F304900E11DE46C5C97947FF С ВЫРАЗИТЬ exec sp_executesql N'SELECT T1._Fld14443 FROM _InfoRg14439 T1 WITH(NOLOCK) WHERE (CASE WHEN T1._Fld14440_TYPE = P1 THEN T1._Fld14440_RRRef WHEN T1._Fld14440_TYPE IN (P1) THEN @P2 END IN (@P3))', N'P1 varbinary(1),@P2 varbinary(16),@P3 varbinary(16)', 0x08, 0x00000000000000000000000000000000, 0xBF180018F304900E11DE46C5C97947FF |
|||
69
Fragster
гуру
23.06.11
✎
17:11
|
(68) т.е. без выразить круче?
|
|||
70
Axel2009
23.06.11
✎
17:13
|
(68) ахаха лол, даже индекс не будет использоваться с выразить.. вон оно че дольше =)
|
|||
71
Axel2009
23.06.11
✎
17:14
|
(63) сам придумал?
|
|||
72
Fragster
гуру
23.06.11
✎
17:14
|
зато мы теперь знаем, что на мисте есть чувак с ником P1
|
|||
73
Темный
23.06.11
✎
17:15
|
Господа, я в шоке.
Привел процедуру к такому виду: СвЭл = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("000000013"); ЗапросКСвойствам = Новый Запрос; ЗапросКСвойствам.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ЗначенияСвойствОбъектов.Значение.Представление |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект = &СсылкаНом | И ЗначенияСвойствОбъектов.Свойство = &СсылкаСв"; Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл ЗапросКСвойствам.УстановитьПараметр("СсылкаСв",СвЭл); ЗапросКСвойствам.УстановитьПараметр("СсылкаНом",ОформлениеСтроки.ДанныеСтроки.Номенклатура); Выборка = ЗапросКСвойствам.Выполнить().Выбрать(); Выборка.Следующий(); СамаЯчейка = ОформлениеСтроки.Ячейки.Производитель; СамаЯчейка.ОтображатьТекст = Истина; СамаЯчейка.Текст = Строка(Выборка.ЗначениеПредставление); КонецЦикла; Стало работать на порядок быстрее! Собственно, достаточно быстро для комфортной работы. Этап № 2 пожалуй не буду делать, и так все нормально. |
|||
74
5 Элемент
23.06.11
✎
17:16
|
(73) давай, будущее поколения тебя вспомнит )
|
|||
75
Широкий
23.06.11
✎
17:17
|
(73) Ну и балбес.
1. Запрос в цикле 2. ЗначенияСвойствОбъектов.Значение.Представление -не юзаешь ВЫРАЗИТЬ |
|||
76
Fragster
гуру
23.06.11
✎
17:18
|
(68) кстати, интересно, что при несовпадении типов сравнивает с пустой ссылкой
|
|||
77
H A D G E H O G s
23.06.11
✎
17:18
|
Ахренеть. Я недооценивал 1С.
exec sp_executesql N'SELECT T1._Fld14443 FROM _InfoRg14439 T1 WITH(NOLOCK) WHERE (T1._Fld14440_TYPE = P1 AND T1._Fld14440_RTRef + T1._Fld14440_RRRef IN (@P2 + @P3, @P4 + @P5))',N'P1 varbinary(1),@P2 varbinary(4),@P3 varbinary(16),@P4 varbinary(4),@P5 varbinary(16)',0x08,0x00000061,0xBF180018F304900E11DE46C5C97947FF,0x00004A98,0xBF180018F304900E11DE46C5C97947F2 Это когда в массиве отбора - 2 разнотипных ссылки. |
|||
78
Широкий
23.06.11
✎
17:18
|
(70) Где ты увидел что без индекса?
|
|||
79
Темный
23.06.11
✎
17:18
|
Я, разумеется, знал и про то, что от "ссылок" надо избавляться, и что запрос надо объявлять не в цикле, и что все поиски и вообще вычисления лучше делать вне цикла. Но я всегда считал, что это добавит 10-20, ну максимум 30% производительности. Теперь же вижу, что ускорение может быть на порядок, и даже больше.
|
|||
80
H A D G E H O G s
23.06.11
✎
17:18
|
(77) Получается - анализирует состав списка отбора поэлементно перед формированием запроса. Респект.
|
|||
81
Широкий
23.06.11
✎
17:19
|
(77) С разнотипными не айс..
|
|||
82
Темный
23.06.11
✎
17:19
|
(75) Вы настаиваете на том, что бы сделать как в (17)?
|
|||
83
Fragster
гуру
23.06.11
✎
17:19
|
(77) нифига не понял... куда пустая ссылка в @P2 из (68) делась?
|
|||
84
H A D G E H O G s
23.06.11
✎
17:20
|
(81) Но 1С оптимизировала как могла это
T1._Fld14440_RTRef + T1._Fld14440_RRRef IN (@P2 + @P3, @P4 + @P5)) |
|||
85
Широкий
23.06.11
✎
17:20
|
(82) Именно, но с поправками
|
|||
86
5 Элемент
23.06.11
✎
17:20
|
Что означает это условие
T1._Fld14440_RTRef + T1._Fld14440_RRRef IN (@P2 + @P3, @P4 + @P5) Что надо сложить _Fld14440_RTRef и _Fld14440_RRRef и проверить вхождение? |
|||
87
Широкий
23.06.11
✎
17:20
|
(84) Т.е. отказываемся от индекса
|
|||
88
Axel2009
23.06.11
✎
17:21
|
(78) (CASE WHEN T1._Fld14440_TYPE = P1 THEN T1._Fld14440_RRRef WHEN T1._Fld14440_TYPE IN (P1) THEN @P2 END IN (@P3))
тут индексы на поиск работать не будут, только на скан. (77) для больших объемов через объединить все будет работать быстрее.. (83) а зачем она нужна, если мы не сравниваем с неопределено? |
|||
89
Fragster
гуру
23.06.11
✎
17:21
|
(83)а, не, понял. ну тогда косяк - если 1типный набор, то в случае несовпадения типов - сравнивает с пустой ссылкой, а если неоднотипный набор - то пустая ссылка в наборе сравнения уже не выдаст "истина"
|
|||
90
H A D G E H O G s
23.06.11
✎
17:21
|
(83) @P2 там - тип справочника, порядковый номер таблицы. Что непонятно то?
|
|||
91
Axel2009
23.06.11
✎
17:21
|
(84) т.е. чисто теоретически совпасть не должно, но в любом случае байбай индексы
|
|||
92
Fragster
гуру
23.06.11
✎
17:21
|
(90)=>(89)
|
|||
93
Широкий
23.06.11
✎
17:22
|
(88) Разве? Конкатенации поля поиска не вижу..
Надо проверить |
|||
94
Axel2009
23.06.11
✎
17:24
|
(93) а без разницы. индекс на поиск работает только в одном случае, когда поле сравнивается со значением. любые ухищерения сваливают в скан
|
|||
95
Широкий
23.06.11
✎
17:25
|
(94) Мне кажется что индекс сработает по одному полю.. а потом скан выборки по второму.. Это я хотел бы проверить
|
|||
96
H A D G E H O G s
23.06.11
✎
17:25
|
(88) Даа, table scan. Прискорбно.
|
|||
97
H A D G E H O G s
23.06.11
✎
17:25
|
(95) Проверил. Scan.
|
|||
98
Fragster
гуру
23.06.11
✎
17:25
|
(96) статистику обнови и еще раз выполни
|
|||
99
Широкий
23.06.11
✎
17:26
|
(97) Печаль
|
|||
100
H A D G E H O G s
23.06.11
✎
17:26
|
Надо запомнить и никогда так не делать.
|
|||
101
5 Элемент
23.06.11
✎
17:26
|
(97) план запроса выбирается SQL, чтобы использовались индексы нужно чтобы в таблице было много записей.
|
|||
102
Fragster
гуру
23.06.11
✎
17:26
|
(100) ну вообще логично - зачем выразить при сравнении тупо ссылки?
|
|||
103
Fragster
гуру
23.06.11
✎
17:28
|
кстати, тогда кому не дель - с одинаковым уидом в 2 справочниках создайте элементы, а потом в регистр с составным полем обоих этих справочников запись с одним из них запихните, в запросе поиск по В(&другойэлемент) сделайте - попадет в выборку неправильная штука, или нет?
|
|||
104
Fragster
гуру
23.06.11
✎
17:28
|
*лень
|
|||
105
Axel2009
23.06.11
✎
17:28
|
(101) ой ли? видимо Вы совсем не в курсе скуль сервера..
|
|||
106
H A D G E H O G s
23.06.11
✎
17:28
|
(103) Вот ведь делать нечего.
|
|||
107
Широкий
23.06.11
✎
17:29
|
(104) Чего проверять.. типы то разные
|
|||
108
Axel2009
23.06.11
✎
17:29
|
(103) там не совсем нужно одинаковый УИД у справочников
например справочник 1 имеет порядковый номер 1, справочник 2 порядковый номер 2 уиды должны различаться на 1 чтобы сумма совпала.. |
|||
109
H A D G E H O G s
23.06.11
✎
17:29
|
(105) Че не так? Нужно больше 400 записей вроде. Не помню точно, что бы индексы юзал.
|
|||
110
Axel2009
23.06.11
✎
17:29
|
(107) тип справочник одинаков. =)
|
|||
111
5 Элемент
23.06.11
✎
17:30
|
(105) вот тебе и ойли, я знаю что говорю
|
|||
112
H A D G E H O G s
23.06.11
✎
17:30
|
(103) Будет как в (77) И?
|
|||
113
H A D G E H O G s
23.06.11
✎
17:30
|
(98) Обновил. Тех же щей.
|
|||
114
Широкий
23.06.11
✎
17:32
|
(108) Там вообще то не сложение а конкатенация строк получается
|
|||
115
H A D G E H O G s
23.06.11
✎
17:37
|
По итогам -
ВЫРАЗИТЬ - убрать из фильтра, вы были правы. 1С сама отбирает по типу метаданных и номеру таблицы и юзает IndexSeek Если будет ВЫРАЗИТЬ() - 1С пишет хитрый запрос и юзает IndexScan Ну и разнотипные элементы лучше размещать в разных массивах и выполнять запросы через Объединить (не проверял правда еще) |
|||
116
H A D G E H O G s
23.06.11
✎
17:38
|
Зашел, называется, в веточку (** сходил за хлебушком).
Век живи, век учись. |
|||
117
Axel2009
23.06.11
✎
18:21
|
(109) для кластерных индексов достаточно одной записи, чтобы использовался кластеред индекс сик..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |