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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: И снова проблемы ИТЗ
Ответ #15 - 04. Марта 2008 :: 14:59
Печать  
Nick писал(а) 04. Марта 2008 :: 14:53:
Нужно читать так:
Цитата:
Но работа немалая, ибо каждую измененную строку надо из дерева изъять и заново добавить.


Да, конечно.
  

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: И снова проблемы ИТЗ
Ответ #16 - 04. Марта 2008 :: 15:07
Печать  
kms
ещё вот это расшифруй плз:
Цитата:
Ибо изменение значений в колонке, которая участвует в нескольких индексах, приводит к пересчету всех соответствующих индексов.


Цитата:
Чтобы заполнение колонки не влияло на индексы, в которых она не
участвует.


т.е. если у меня есть колонки:
  Знач1
  Знач2
и индексы:
 Индекс1 по  Знач1
 Индекс2 по Знач1,Знач2

при изменении Знач2 Индекс1 будет перестроен?
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: И снова проблемы ИТЗ
Ответ #17 - 04. Марта 2008 :: 15:13
Печать  
kiruha писал(а) 04. Марта 2008 :: 14:47:
Так как стоимость операции сортировки выше чем перестройки индекса.
Т.е. для того чтобы отсортировать сначала строят индекс, а потом сортируют, а не наоборот.

Тут не очень понятно.
"Сортировка" для ИТ и добавление индекса - это примерно одно и то же.
Или я не очень схватил мысль.

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

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: И снова проблемы ИТЗ
Ответ #18 - 04. Марта 2008 :: 15:15
Печать  
Nick писал(а) 04. Марта 2008 :: 15:07:
kms
ещё вот это расшифруй плз:
Цитата:
Ибо изменение значений в колонке, которая участвует в нескольких индексах, приводит к пересчету всех соответствующих индексов.


Цитата:
Чтобы заполнение колонки не влияло на индексы, в которых она не
участвует.


т.е. если у меня есть колонки:
  Знач1
  Знач2
и индексы:
 Индекс1 по  Знач1
 Индекс2 по Знач1,Знач2

при изменении Знач2 Индекс1 будет перестроен?

Ну сейчас же он у тебя перестраивается Подмигивание
Фундаментальной необходимости в этом нет, значит скоро это поведение будет исправлено.
  

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: И снова проблемы ИТЗ
Ответ #19 - 04. Марта 2008 :: 15:20
Печать  
Цитата:
Ну сейчас же он у тебя перестраивается 
Фундаментальной необходимости в этом нет, значит скоро это поведение будет исправлено.


Не то что фунаментальной вообще не представляю зачем это нужно Печаль
Т.е. сейчас узкое место в ИТЗ это перестройка индексов индексное выражение которых не изменилось.
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: И снова проблемы ИТЗ
Ответ #20 - 04. Марта 2008 :: 15:21
Печать  
kms писал(а) 04. Марта 2008 :: 15:13:
kiruha писал(а) 04. Марта 2008 :: 14:47:
Так как стоимость операции сортировки выше чем перестройки индекса.
Т.е. для того чтобы отсортировать сначала строят индекс, а потом сортируют, а не наоборот.

Тут не очень понятно.
"Сортировка" для ИТ и добавление индекса - это примерно одно и то же.
Или я не очень схватил мысль.

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


Да вообщем согласен, был не прав.
В связи с этим практический вопрос : Когда вызываю метод Сортировать() в ИТ,
та строит вспомогательный индекс, если он отсутствует по нужной колонке?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: И снова проблемы ИТЗ
Ответ #21 - 04. Марта 2008 :: 15:26
Печать  
kiruha писал(а) 04. Марта 2008 :: 15:21:
В связи с этим практический вопрос : Когда вызываю метод Сортировать() в ИТ,
та строит вспомогательный индекс, если он отсутствует по нужной колонке?

Насколько я помню, именно так (ну, точнее - перестраивается "основной" индекс, существующие индексы никак не используются).
Причем физического перемещения строк не происходит, точно как для обычного индекса.
Поэтому некоторые удивляются, почему после Сортировать() и цикла обхода без указания индекса номера строк расположены непоследовательно.

В принципе, время от времени эта тема всплывает.
Насколько я помню, Леша уже раскаялся, что вообще добавил этот метод  Смех
На самом деле, невозможно усидеть на двух стульях, от попытки сохранить семантику работы с тз, логическая стройность никак не выигрывает.
Хотя надо отдать должное - основной интерфейс получился весьма удачным.
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: И снова проблемы ИТЗ
Ответ #22 - 04. Марта 2008 :: 15:31
Печать  
Nick писал(а) 04. Марта 2008 :: 15:20:
Цитата:
Ну сейчас же он у тебя перестраивается  
Фундаментальной необходимости в этом нет, значит скоро это поведение будет исправлено.


Не то что фунаментальной вообще не представляю зачем это нужно Печаль
Т.е. сейчас узкое место в ИТЗ это перестройка индексов индексное выражение которых не изменилось.

При чем здесь факт неизменности индексного выражения?
Достаточно того, что данные изменились.

При изменении данных ИТ обязана перестроить индекс - здесь вариантов нет.

Описанная мной проблема - в потенциальной перестройке НЕСКОЛЬКИХ индексов (в том числе и независящих от данной колонки) при выполнении метода Заполнить().
Это ж некритично ни разу, но может быть исправлено.
  

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: И снова проблемы ИТЗ
Ответ #23 - 04. Марта 2008 :: 15:41
Печать  
Цитата:
Описанная мной проблема - в потенциальной перестройке НЕСКОЛЬКИХ индексов (в том числе и независящих от данной колонки) при выполнении метода Заполнить().
Это ж некритично ни разу, но может быть исправлено.


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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: И снова проблемы ИТЗ
Ответ #24 - 04. Марта 2008 :: 15:47
Печать  
Nick писал(а) 04. Марта 2008 :: 15:41:
Понятно спасибо

Тебе спасибо - твоими стараниями ИТ будет еще лучше. Улыбка

Мне даже интересно стало, насколько оказывается полезен разный подход для успешного тестирования.
Пойду, обдумаю эту мысль.
  

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



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: И снова проблемы ИТЗ
Ответ #25 - 04. Марта 2008 :: 20:49
Печать  
kms писал(а) 04. Марта 2008 :: 14:56:
Неа, обычно нет.
Простое построение индекса - по одной вставке значения строки в дерево.
"ИТ.НоваяСтрока();  ИТ.Колонка = значение;" - две вставки и одно удаление.

У меня даже была когда-то идея для сильно нагруженных алгоритмов сделать спец. метод для добавления заполненной строки в ИТ (обошлось бы одной вставкой).
Но вряд ли это было бы широко востребовано Подмигивание


По ИТ востребовано ВСЁ, что ускоряет её работу Подмигивание
Для того она и используется!
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: И снова проблемы ИТЗ
Ответ #26 - 05. Марта 2008 :: 07:38
Печать  
Баг поправил. Как всегда kms'у спасибо  Улыбка

Немножко практической теории (или как там это называется?).  Если на некоторую структуру (в данном случае массив строк) накручена некоторая другая структура, зависящая от текущего состояния основной (в данном случае индексы), то при изменении основной структуры меняется и вспомогательная. В общем случае построить вспомогательную структуру легче чем перестраивать (я по крайней мере таких исключений не помню).
На практике это значит, что ИТ после индексации лучше вообще не трогать. Это же касается и индексированных таблиц в SQL - чем больше индексов, тем дольше INSERT.  Кроме того, в ИТ (не знаю как в SQL) используются сбалансированные деревья с постоянной балансировкой, а балансировка тоже занимает какое-то время.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: И снова проблемы ИТЗ
Ответ #27 - 05. Марта 2008 :: 08:22
Печать  
Класс!  Улыбка

Леша, открой тайну.
Вот это у тебя автоматически получается?


Changed files:
1cpp/Source/VTExt VTExtended.cpp,1.75


Это, наверное, Федор по большому блату может сделать? Улыбка
  

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


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

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: И снова проблемы ИТЗ
Ответ #28 - 05. Марта 2008 :: 09:28
Печать  
А это в комменте пишешь
Цитата:
[bug 3659]
comment

И оно в багзилле к нужному багу привязывается.  Главное это на самой первой строчке нужно писать, и другого ничего в той же строчке не писать
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: И снова проблемы ИТЗ
Ответ #29 - 05. Марта 2008 :: 10:44
Печать  
ADirks писал(а) 05. Марта 2008 :: 09:28:
А это в комменте пишешь
Цитата:
[bug 3659]
comment

И оно в багзилле к нужному багу привязывается.  Главное это на самой первой строчке нужно писать, и другого ничего в той же строчке не писать

Необязательно писать это именно в самой первой строке коммента.

Просто это должно быть на отдельной строке. Для понимающих - там вот такой регексп: '^\[[Bb]ug[ _]\d*\]$'
Один коммит может быть даже привязан к нескольким багам (тогда каждый баг надо записывать отдельной  конструкцией на отдельной строчке).

P.S. А еще на отдельной строке можно указать [hours 1.5] и оно запишет в указанный баг количество потраченных часов...
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать