Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) ИндексированнаяТаблица (число прочтений - 8928 )
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица
Ответ #15 - 27. Июля 2006 :: 10:29
Печать  
AzagTOT писал(а) 27. Июля 2006 :: 09:36:
С фильтром вроде разобрался спасибо ADirks
а вот с методом показать() обидно Смущённый

А попробуй выполнить такой
Код
Выбрать все
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ИТ.Выгрузить(ТЗ); 

упадёт на этом или нет?  По идее, должно упасть, потому как внутри Показать() выполняется выгрузка в ТЗ.
  
Наверх
 
IP записан
 
AzagTOT
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 27. Июля 2006
Re: ИндексированнаяТаблица
Ответ #16 - 27. Июля 2006 :: 11:17
Печать  
Падает только если есть Показать() без этой строки все работает!
(падаеть именно на ней)
  
Наверх
 
IP записан
 
vlad-1c
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Июля 2006
Re: ИндексированнаяТаблица
Ответ #17 - 02. Августа 2006 :: 00:41
Печать  
Другая проблема с "ИндексированняТаблица"

1cpp-2.0.2.2, "ИндексированняТаблица" используется совместно с прямыми запросами:

ЗапросСписание.Загрузить(RS.ВыполнитьИнструкцию(ТекстЗапроса));
ЗапросСписание.ДобавитьИндекс("ДляПоиска","Продукция, Заказ, Материал")  //тормоз?????? В таблице порядка 15000 строк, работает ну очень медленно - перебор стандартным запросом на порядок! быстрее. 90% времени всего отчета занимает "ЗапросСписание.ДобавитьИндекс" и 5% поиск строк:
СписокФильтра.УдалитьВсе();
СписокФильтра.ДобавитьЗначение(Продукция);
СписокФильтра.ДобавитьЗначение(Заказ);
СписокФильтра.ДобавитьЗначение(Материал);
Если ЗапросСписание.НайтиСтроку("ДляПоиска",СписокФильтра,,1) <> 0  Тогда
     Списано = ЗапросСписание.Количество;
КонецЕсли;

Может кто, чего подскажет? Печаль

  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица
Ответ #18 - 02. Августа 2006 :: 05:11
Печать  
vlad-1c писал(а) 02. Августа 2006 :: 00:41:
Может кто, чего подскажет? Печаль

Для начала попробовать ночную сборку.
  

FormEx developer
Наверх
www  
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица
Ответ #19 - 02. Августа 2006 :: 05:46
Печать  
vlad-1c писал(а) 02. Августа 2006 :: 00:41:
Другая проблема с "ИндексированняТаблица"

1cpp-2.0.2.2, "ИндексированняТаблица" используется совместно с прямыми запросами:

ЗапросСписание.Загрузить(RS.ВыполнитьИнструкцию(ТекстЗапроса));
ЗапросСписание.ДобавитьИндекс("ДляПоиска","Продукция, Заказ, Материал")  //тормоз?????? В таблице порядка 15000 строк, работает ну очень медленно - перебор стандартным запросом на порядок! быстрее. 90% времени всего отчета занимает "ЗапросСписание.ДобавитьИндекс" и 5% поиск строк:
СписокФильтра.УдалитьВсе();
СписокФильтра.ДобавитьЗначение(Продукция);
СписокФильтра.ДобавитьЗначение(Заказ);
СписокФильтра.ДобавитьЗначение(Материал);
Если ЗапросСписание.НайтиСтроку("ДляПоиска",СписокФильтра,,1) <> 0  Тогда
     Списано = ЗапросСписание.Количество;
КонецЕсли;

Может кто, чего подскажет? Печаль


Разница на порядок по сравнению с чем? Из приведённого примера не совсем понятно.
Ну и если выгоднее использовать ТЗ - так почему её не использовать?

Для ускорения создания индекса рекомендую индексировать по внутренним представлениям. Т.е. так: ЗапросСписание.ДобавитьИндекс("ДляПоиска","*Продукция, *Заказ, *Материал").


Поскольку данные вытаскиваются запросом, то возникает сомнение в том что нужны эти самые 15000 строк. Может надо как-то запрос переделать, чтоб лишнее отсечь? Впрочем, к ИТ это уже отношения не имеет  Улыбка
Кстати, раскладка 90% / 5% - это ещё одно подтверждение того, что далеко не все строки нужны.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица
Ответ #20 - 02. Августа 2006 :: 06:12
Печать  
Куда бы это написать большими неоновыми буквами.

Для поиска - нужно использовать индексы по внутр. представлению.
Для сортировки - доп. поля простых типов (число, строка, дата).

Это если скорость критична.
ADirks дело говорит.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
vlad-1c
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Июля 2006
Re: ИндексированнаяТаблица
Ответ #21 - 02. Августа 2006 :: 10:04
Печать  
ADirks писал(а) 02. Августа 2006 :: 05:46:
[quote author=vlad-1c link=1153924180/0#17 date=1154479316]Другая проблема с "ИндексированняТаблица"

Для ускорения создания индекса рекомендую индексировать по внутренним представлениям. Т.е. так: ЗапросСписание.ДобавитьИндекс("ДляПоиска","*Продукция, *Заказ, *Материал").


Поскольку данные вытаскиваются запросом, то возникает сомнение в том что нужны эти самые 15000 строк. Может надо как-то запрос переделать, чтоб лишнее отсечь? Впрочем, к ИТ это уже отношения не имеет  Улыбка
Кстати, раскладка 90% / 5% - это ещё одно подтверждение того, что далеко не все строки нужны.


Прошу прощения и спасибо за ответы, лоханулся сам в связи с ночной работой (пропустил фильтр по прямому запросу: в стандартном запросе - 1500 строк, а в прямом в 10 больше).
Индексировать по внутренним представлениям - приносит очень положительный результат - в моем случае ускорение наложения фильтра в 2 раза. Спасибо!

  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица
Ответ #22 - 02. Августа 2006 :: 13:08
Печать  
vlad-1c писал(а) 02. Августа 2006 :: 10:04:
Индексировать по внутренним представлениям - приносит очень положительный результат - в моем случае ускорение наложения фильтра в 2 раза. Спасибо!

Что-то мало.
И я бы 2.0.2.2. с ИТ не использовал, чтобы не наступать повторно на грабли, которые исправлены в 2.0.3.x.
Именно для ИТ лучше текущий nightbuild. Успехов.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать