Показать сообщение отдельно
Старый 10.04.2002, 18:55   #37  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Ну, дерево, само по себе, не слишком-то и отличается. В форме с номенклатурой два дерева (одно для фильтрации, другое для классификации), но на быстродействие это вряд ли существенно влияет. Здесь, скорее всего, дело в том, что в lookup форме выводятся данные только одной таблицы (InventTable), а в форме номенклатурные единицы выводятся данные пяти таблиц, не считая тех, что используются для классификатора (+2). Думаю, что это больше всего влияет на быстродействие.

А у Вас действительно на порядок отличается скорость? У нас замедление заметно, но сказать, что на порядок... Хотя классов в классификаторе у нас, конечно, меньше.

На счет ID и CODE. Дело в том, что изначально задача стояла так, что классу принадлежат и его элементы, и элементы, принадлежащие его потомкам. Изначально задачу решили так: код потомка строится как код предка и некоторые символы, приписанные справа. Это дает возможность использовать для SQL-запроса условие LIKE 'ABC*', где ABC - код предка. В принципе, это видимо тоже замедляет фильтрацию, так как выборка с использованием LIKE не индексируется. Возможно, что в будущем классификатор будет переделан так, чтобы для построения поддерева использовалось не LIKE ..., а ParentID = ... и соответствующие индексы (вы можете заняться этим прямо сегодня! ). Предположительно это несколько ускорит фильтрацию, но гарантий дать не могу.

P.S.: А по ID фильтрация и не идет. Идет фильтрация по TypeID. Дело в том, что классы с одинаковым кодом могут встречаться, но в разных классификациях (типах классов).
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me