Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Предложение по ИТЗ (число прочтений - 4507 )
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Предложение по ИТЗ
07. Июля 2008 :: 08:10
Печать  
Предложение по функционалу индексированной таблицы.

Проблема: Очень медленно добавляется индекс по предсталению. Это связано с тем что при построении индекса для каждой строки таблицы 1с делает запрос на сервер чтоб получить это представление. В результате получаем:
Получение данных: 0,12 с
Добавление индекса: 82 с
O_O

При этом если выгрузить данные в обычную ТЗ и отсортировать её  то время будет примерно 8с.

Судя по Profiler 1c для сортировки ТЗ получает представление для каждого встречаемого агрегатного объекта 1 раз. Т. е. если есть 2 строки содержащих один и тот же элемент то будет выполнен только 1 запрос. Т.е. 1с использует внутренний кэшь объектов.

Вопрос: можно такую же схему прикрутить к ИТЗ?
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложение по ИТЗ
Ответ #1 - 07. Июля 2008 :: 09:42
Печать  
Задача нормально не решается.
Проще получить дополнительные значения для сортировки - и уже по ним строить внутренние индексы.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Предложение по ИТЗ
Ответ #2 - 07. Июля 2008 :: 09:45
Печать  
kms писал(а) 07. Июля 2008 :: 09:42:
Задача нормально не решается.
Проще получить дополнительные значения для сортировки - и уже по ним строить внутренние индексы.


Почему не решается? в обычной ТЗ решается, а в ИТЗ нет?
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложение по ИТЗ
Ответ #3 - 07. Июля 2008 :: 09:48
Печать  
ОК.
Я лично не буду решать задачу, где

Цитата:
- Получение данных: 0,12 с
- При этом если выгрузить данные в обычную ТЗ и отсортировать её  то время будет примерно 8с.


Нормально перефразировал? Подмигивание
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Предложение по ИТЗ
Ответ #4 - 07. Июля 2008 :: 09:53
Печать  
to kms
т.е. тебе не нужна быстрая сортировка в ИТЗ по представлению объекта?
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложение по ИТЗ
Ответ #5 - 07. Июля 2008 :: 09:59
Печать  
Nick писал(а) 07. Июля 2008 :: 09:53:
to kms
т.е. тебе не нужна быстрая сортировка в ИТЗ по представлению объекта?

Ну почему - не отказался бы.
Если бы действительно можно было сделать ее быстрой - я бы не парил мозг в свое время с оптимизацией индексов по внутренним представлениям.

Факт в том, что даже однократный запрос на сервер - это хана производительности.
И в этом плане меня мало волнует - 8 или 80 сек будет на построение индекса.
Я хочу, чтобы было как для внутренних - 0,1 сек. А здесь это недостижимо.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложение по ИТЗ
Ответ #6 - 07. Июля 2008 :: 09:59
Печать  
Nick

Сколько строчек в выборке?
И сколько строится индекс по внутренним представлениям?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Предложение по ИТЗ
Ответ #7 - 07. Июля 2008 :: 10:02
Печать  
Цитата:
И в этом плане меня мало волнует - 8 или 80 сек будет на построение индекса.

это между прочим в 10 раз. И меня почемуто это волнует  Нерешительный
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Предложение по ИТЗ
Ответ #8 - 07. Июля 2008 :: 10:03
Печать  
kms писал(а) 07. Июля 2008 :: 09:59:
Nick

Сколько строчек в выборке?
И сколько строится индекс по внутренним представлениям?

По внутренним 0,2 с
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложение по ИТЗ
Ответ #9 - 07. Июля 2008 :: 10:13
Печать  
Неплохо.

Предположим, что ты увеличишь размер выборки в 10 раз.
Для внутренних индексов рост времени будет почти линейным - 2 сек.

А вот технологии, построенные на кешировании, могут внезапно отказать.
Конечно, зависит от распределения значений и размера кеша.
...
Короче, не стоит овчинка выделки.

P.S.
И вообще, все эти индексы по представлениями - это Лехина карма Смех
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложение по ИТЗ
Ответ #10 - 07. Июля 2008 :: 10:18
Печать  
Может, я не в теме, но кто мешает в запросе получить все объекты в виде ИД и их представления в виде строки, а уж потом работать непосредственно со строкой-представлением, не обращаясь к базе?
ИМХО это рекомендованный путь.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Предложение по ИТЗ
Ответ #11 - 07. Июля 2008 :: 10:19
Печать  
Вот так сказать для полноты картины:

--ОТЛАДЧИК .ПолучениеДанных: 105
--ОТЛАДЧИК .Доб индекс: 1106
--ОТЛАДЧИК .Свернуть: 1149
--ОТЛАДЧИК .Сортировать ТЗ: 25855
--ОТЛАДЧИК .Доб индекс по представлению: 152032
Количество строк:45508

Числа в милисекундах
152032/25855 = 5.9
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Предложение по ИТЗ
Ответ #12 - 07. Июля 2008 :: 10:24
Печать  
artbear писал(а) 07. Июля 2008 :: 10:18:
Может, я не в теме, но кто мешает в запросе получить все объекты в виде ИД и их представления в виде строки, а уж потом работать непосредственно со строкой-представлением, не обращаясь к базе?
ИМХО это рекомендованный путь.


Ну запросы несколько сложнее хотя не на много. Кроме того ты ведь не всегда работаешь непосредственно с результатом выборки запроса. может нужно обработать существующую ИТЗ.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложение по ИТЗ
Ответ #13 - 07. Июля 2008 :: 10:27
Печать  
artbear писал(а) 07. Июля 2008 :: 10:18:
Может, я не в теме, но кто мешает в запросе получить все объекты в виде ИД и их представления в виде строки, а уж потом работать непосредственно со строкой-представлением, не обращаясь к базе?
ИМХО это рекомендованный путь.

Угу: http://www.1cpp.ru/forum/YaBB.pl?num=1215418250/1#1
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложение по ИТЗ
Ответ #14 - 07. Июля 2008 :: 10:31
Печать  
Nick писал(а) 07. Июля 2008 :: 10:24:
Ну запросы несколько сложнее хотя не на много. Кроме того ты ведь не всегда работаешь непосредственно с результатом выборки запроса. может нужно обработать существующую ИТЗ.

Да, несколько сложнее.
Но если будет выбор - написать несколько сложнее и построить в 40 раз быстрее, или наоборот -  что ты выберешь?
Да, бывают и другие задачи - когда надо сортировать существующую выборку - тут увы, всегда будут потери.
  

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