Re: Индексы в дерево видов операций.


[ Пpишедшие ответы ] /www.hdru.com/wwwboard/faq.htm">Help ]

Posted by Рустем Мухаметшин on November 19, 1998 at 12:00:07:

In Reply to: Индексы в дерево видов операций. posted by Сергей Холево, фирма Централь Минск on November 18, 1998 at 12:36:54:

    Конечно индексировать в числах выгодно. Но тут есть, по моему, одна заковыка. Дело в том что названия ветвей в теперешнем виде сами по себе и есть индексы, но текстовые. Если Вы хотите преобразовать их в числовые без потерь, то необходим алгоритм взаимнооднозначного   соответствия. Поскольку сервер при построении баланса этим и занимается. В этом вся проблема. В том же способе который предложиен Вами его нет. Это приводит к следующему: Если Вы будете изменять дерево (добавлять ветви, отрезать, модифицировать), то сложно будет поддерживать соответсвие с существующим журналом операций. Возникнут, так же, проблемы с переносимостью дерева. Т.е. две базы с одинаковыми деревьями в текстовом представлении не обязательно смогут работать с деревом операций друг друга, поскольку наверняка будет разное числовое представление. А это означает трудности при удаленной настройке (когда клиент удален и сам иногда модифицирует дерево). Конечно можно позволить самому настройщику контролировать соответсвие текстового и числового представлений и изменять последнее при необходимости. Все же, как мне кажеться если не будет хорошей IDE системы это сложновато.
    Однако, сервер может и должен применять такие методы в том случае когда он полностью контролирует процесс. Я имею виду, хотя бы, те же самые факты. Сейчас ключевое слово(а) (Первая фраза прототипа) полностью записывается в ОЗУ при исполнении факта и facts.b. Спрашивается, зачем??? Ведь можно проиндексировать все прототипы фактов числами в момент загрузки. Здесь не будет никаких проблем. Поскольку при загрузке сервер может построить взаимнооднозначное соответствие обоих представлений. При этом повысится производительность (сравнивать числа все же проще чем строки).
    К сожалению тоже нельзя применить к эстрапараметрам. Сервер заранее не знает их полный набор, он целиком зависит от настройки и текущего состояния базы. Здесь хотелось бы еще раз напомнить о необходимости отводить под их индексы столько памяти сколько они действительно занимают, а не буфер постоянной длины. Да это будет медленней работать. Но зато получиться большая экономия памяти, а замедление, как мне кажеться, не будет существенным. Сейчас в моих настройках индексы э-п занимают места больше чем сами э-п!!!


Пpишедшие ответы: