Переключение на Главную Страницу Страницы: 1 2 [3] 4 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) ИндексированнаяТаблица метод Сортировать... (число прочтений - 30233 )
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #30 - 17. Июля 2006 :: 08:57
Печать  
Внизу в замере
  

untitled_001.JPG ( 27 KB | Загрузки )
untitled_001.JPG

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


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 22. Июня 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #31 - 17. Июля 2006 :: 09:30
Печать  
Очень интересно. ВыполнитьЗапрос выполняется 1,08 сек. Дальше идет Таб.ВывестиСекцию - 1,04 сек, затем ИТЗ.Группировать - 1,02 сек.  Это параметры общие для обоих вариантов отчета (плюс-минус доли секунды).
В том варианте, где делаю сортировать, общее время сортировок составляет 0,12 сек (теряем на этом совсем немного). Но при этом общее время выполнения прцедур ВывестиГруппировку - 15,76 сек против 16,35 при использовании индексов. Т.е. на чем-то при использовании сортировки оно даже выигрывает. Но по сравнению с общим временем выполнения - один хрен, особо на этом не выгадаешь...
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #32 - 17. Июля 2006 :: 11:06
Печать  
Дык о том и речь, что 0,12 сек оптимизировать проблематично Улыбка
  

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


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 22. Июня 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #33 - 17. Июля 2006 :: 11:32
Печать  
Мда. Щас проверил на большом объеме инфы (с детализацией по документам за год, хотя документооборот не очень большой) - выигрыш использования индексов по сравнению с сортировкой всего секунд 5.
  
Наверх
 
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #34 - 17. Июля 2006 :: 12:58
Печать  
Из собственного опыта:
1. "ИндексированнаяТаблица" это круто, но если маленькая выборка (до 1000 строк).
2. Если размеры таблици - десятки, а то и сотни то делаю группировки в самом запросе + програмный обход "псевдо" группировок.
  
Наверх
ICQ  
IP записан
 
seleand
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 22. Июня 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #35 - 17. Июля 2006 :: 13:10
Печать  
chicago писал(а) 17. Июля 2006 :: 12:58:
Из собственного опыта:
1. "ИндексированнаяТаблица" это круто, но если маленькая выборка (до 1000 строк).
2. Если размеры таблици - десятки, а то и сотни то делаю группировки в самом запросе + програмный обход "псевдо" группировок.


Можно второй пункт подробнее? Пример приведешь?
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #36 - 17. Июля 2006 :: 13:23
Печать  
chicago писал(а) 17. Июля 2006 :: 12:58:
Из собственного опыта:
1. "ИндексированнаяТаблица" это круто, но если маленькая выборка (до 1000 строк).
2. Если размеры таблици - десятки, а то и сотни то делаю группировки в самом запросе + програмный обход "псевдо" группировок.

Ага, я тоже так делаю  Улыбка
ИТ предназначена в первую очередь для всяких хитрых манипуляций с массивами данных, которые в запросе не сделаешь, или эти манипуляции дают слишком большую нагрузку на сервер.
Если что-то можно сделать в запросе - надо это делать в запросе, независимо от объёма данных. Лучше немножко поломать себе башку об SQL, но зато всё будет летать.  А метод Группировать() - это вообще какой-то тормоз получился, и пожиратель памяти. Уж больно много там индексов строится.
  
Наверх
 
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #37 - 17. Июля 2006 :: 13:33
Печать  
seleand писал(а) 17. Июля 2006 :: 13:10:
chicago писал(а) 17. Июля 2006 :: 12:58:
Из собственного опыта:
1. "ИндексированнаяТаблица" это круто, но если маленькая выборка (до 1000 строк).
2. Если размеры таблици - десятки, а то и сотни то делаю группировки в самом запросе + програмный обход "псевдо" группировок.


Можно второй пункт подробнее? Пример приведешь?


Подробне это какждый раз по "своему". Все зависит от поставленой задачи. Но общее у все вариантах одно, это получение результирующей выборки максимально пригодной для последующего, быстрого вывода. А инструментом для этого может служить в первую очередь форумы типа этого и конечно BOL или другая дока.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #38 - 17. Июля 2006 :: 14:39
Печать  
Если
Код
Выбрать все
стрГруппировки = "Фирма: ^Фирма; Склад: ^Склад; Товар: ^Товар; Документ: Документ"
 


то потомки не сортируются нормально, конечно если не сортировать каждый уровень.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #39 - 17. Июля 2006 :: 14:46
Печать  
Провел опыт:
Группирую по указанному выше способу (стрГруппировки), потом
Код
Выбрать все
//Запрос.Сортировать(ИмяГруппировки);
Запрос.ВыбратьСтроки(ИмяГруппировки);
Пока Запрос.ПолучитьСтроку(ИмяГруппировки) > 0 Цикл
...
КонецЦикла;
 


и теперь нормально выбирает.
А если
Код
Выбрать все
//Запрос.Сортировать(ИмяГруппировки);
Запрос.ВыбратьСтроки();
Пока Запрос.ПолучитьСтроку() > 0 Цикл
...
КонецЦикла;
 


то фигня, не использует индекс.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #40 - 17. Июля 2006 :: 15:14
Печать  
Цитата:
то фигня, не использует индекс.

А что, должна?
  

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



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #41 - 17. Июля 2006 :: 15:16
Печать  
а разве нет?
Яж сразу указал, что индексы "такие-то", логично думать, что будут использованы именно они.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #42 - 17. Июля 2006 :: 19:07
Печать  
spock писал(а) 17. Июля 2006 :: 15:16:
а разве нет?
Яж сразу указал, что индексы "такие-то", логично думать, что будут использованы именно они.

С чего вдруг?

нихрена вы не понимаете в колбасных обрезках Язык
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #43 - 17. Июля 2006 :: 19:15
Печать  
spock писал(а) 17. Июля 2006 :: 14:39:
Если
Код
Выбрать все
стрГруппировки = "Фирма: ^Фирма; Склад: ^Склад; Товар: ^Товар; Документ: Документ"
 


то потомки не сортируются нормально, конечно если не сортировать каждый уровень.

Тяжелый, тяжелый индекс.
Никогда такой индекс не будет строиться быстро.

Разумеется, предполагаю, что все поля - агрегаты.
  

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


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

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИндексированнаяТаблица метод Сортировать...
Ответ #44 - 18. Июля 2006 :: 03:15
Печать  
spock писал(а) 17. Июля 2006 :: 15:16:
а разве нет?
Яж сразу указал, что индексы "такие-то", логично думать, что будут использованы именно они.

Штука в том, что индексов может быть много. И даже если ты "указал что-то сразу", то это не повод использовать этот индекс по умолчанию. Когда ты говоришь Запрос.ПолучитьСтроку(); то это эквивалентно Запрос.ПолучитьСтроку(""); или Запрос.ПолучитьСтроку(1); т.е. используется индекс по умолчанию (с номером 1 и именем ""), который есть всегда, и который нельзя удалить. И это касается всех операций, где индекс можно не указывать.  Когда вместо ДобавитьИндекс() ты говоришь Сортировать() - то это тоже операция построения индекса, только затрагивает она дефолтный индекс, физически же строки не сортируются никогда.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 
ОтправитьПечать