|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Dmitry Kuzmenko 2:5020/400 25 Mar 2003 12:37:30 To : ЏгвЁ«Ё …ўЈҐЁ© ‚ «ҐвЁ®ўЁз Subject : Re: постреляционные базы данных -------------------------------------------------------------------------------- Hello, Евгений! Путилин Евгений Валентинович wrote: > Я точно знаю что не зависимо от реализации, перстройка индекса евляеться > операцией, которая увеличивает скорость поиска по этому индексу. По объяснению > мне на основе SQLBase в её начальных реализациях(~10 лет назад), так и было > т.е. получение сбалансированного дерева, благо алгоритмы поиска у нас > преподовались в университете. деревья используемых в РСУБД индексов (b-tree) всегда сбалансированы. Другое дело, что если вдруг после определенного кол-ва записей глубина индекса доехала до определенного уровня (например 4, что является критическим), то при уменьшении кол-ва записей РСУБД не будет уменьшать глубину этого индекса. И производительность будет хуже, чем если этот индекс перестроить. Кроме этого, если при переполнении страницы указателей или ключей сервер "делит" эту страницу пополам с добавлением еще одного указателя в страницу "наверх", то при удалении ключей или указателей обратно он практически не сливает пустые страницы. Собственно, это и есть причина "неуменьшения" глубины индекса. Говорить что данный подход плох или хорош - нельзя. Ибо все зависит от работы с данными - насколько часто они меняются, насколько стабильно их усредненное количество или линейна скорость их увеличения, и т.п. Идеальный индекс построить нельзя, можно только реализовать кучу вариантов индексов, и дать возможность использовать их администратору. Однако вкупе с другими задачами это может оказаться еще более сложным, поэтому действительно, проще перестроить индекс в критической или спланированной ситуации, чем подбирать 2-3 варианта реализации b-tree индекса под конкретный случай. Для примера - индексы с упаковкой ключей больше тратят процессорного времени. Hо занимают меньше места, что экономит работу с диском. Чаще в РСУБД используются B+-tree, где страницы листьев (ключей) и указателей отличаются. Это тоже увеличивает хранимый объем, но не требует у ключа признака "ключ" или "указатель". И т.д. И т.п. > Причины по которым сервер может быть остановлен, могут быть разными, может > быть чтото с файлом лога и т.п. Это мои предположения :-(, и зависит от > реализации. это само собой. -- Dmitri Kouzmenko, www.ibase.ru, 953-13-34 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: iBase (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/27749d275354.html, оценка из 5, голосов 10
|