Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Индексы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Базы данных
Vofka
Привет!

Интересуют индексы.
1. Во многих статьях и литературе индексы сравнивают с указателем. Мне интересно как физически индекс представлен в БД?
2. При его создании СУБД сама создает его структуру и обработку, а программисту стоит только думать о том нужен он или нет? Или индекс нужно ещё "уметь" создавать?
Vofka
Никто не в курсе?
Pepe
По FoxPro. Индекс может быть простым (по полю) или сложным (вычисляется, например включить только текущий год в дате). Какой индекс нужен - забота создателя таблицы.
Индексный файл может быть простым (содержит "сортировку" по одному ключу в виде отдельного файла) или компаундным (содержит все ключи в одном файле)
Vofka
Я б хотел узнать о "логике" индексов и их структуре (как они физически хранятся)
Fynjy
Цитата(Vofka @ 08.02.10, 9:23) необходимо зарегистрироваться для просмотра ссылки
Я б хотел узнать о "логике" индексов и их структуре (как они физически хранятся)
Любой букварь по бд. По сути, если очень грубо, индекс это: | guid | "поле1"+"поле2"+...+"полеN" |
Vofka
Fynjy, где можно посмотреть пример индексов на СКЛ или ДБФ базе?
Fynjy
Что тебе это даст?
Fynjy
необходимо зарегистрироваться для просмотра ссылки вот тут есть описание dbf\cdx , в ms sql логика покруче ...
Fynjy
вот еще необходимо зарегистрироваться для просмотра ссылки
Vofka
Цитата
Что тебе это даст?

Хочу разобраться как индексы строятся и как СУБД их использует
alex040269
Цитата(Vofka @ 08.02.10, 9:23) необходимо зарегистрироваться для просмотра ссылки
Я б хотел узнать о "логике" индексов и их структуре (как они физически хранятся)


Самый простой индекс у симейства DBASE (CLIPPER,FOXPRO ну и прочие...).

Индекс нужен за тем, чтобы быстрее находить нужные записи в БД. в DBASE индекс представлен двоичным деревом. Вершина дерив в идеале - середина списка, у вершины два указателя, указывают на средины младших значений и старших. И т.д.

Таким образом для поиска нужной записи нужно сделать ln2 переходов и сравнений. а не сравнивать все записи с искомым ключем.

Если индексов много, то быстро можно находить информацию по разным ключам, но при это очень может возрастать время записи.
RomanZ
Сори на руском давно не писал , так что не буду смешить людей.. Пишу потому что в голову вкладывалось 15 лет тому так что не обезсудьте.. если мараз просто пропуститеsmile.gif

Індекси за структурою мають переважно структуру дерев різного виду по суті в основі її лежить завжди сортування класика жанру це 3тій том Дональд Кнут Мистецтво програмування . Оптмально в певний період було визнано найефективнішим індекси в вигляді В+ дерев , якщо не помиляюсь це було доведено математично як найкоротший індекс з найменшим часом доступу. пысля чого виробники перестали розказувати як ындексують це перестало бути актуальним . При сьогоднійшній швидкодії ніхто непробує реалізовувати індекси самостійно нема великого змісту як і методів прямого доступу хоча думаю якщо комусь щось не підійде написати зможе. Простий індек складний в принципі нема великої різниці завжди можна створити складне розрахункове поле (конкретніше не питайте меня як саме де я не програмую років 10:)) в якому вибрати що цікавить для індексу і індексувати його. Для буть якої вирізки досить навіть засобів Exel .
Реалызовувати індексування в 1С не радив би , це мова досить високого рівня результат боюсь буде невтішний.


Если фигню написал просто пропустите, не обязательно обзывать и ругатьsmile.gif
editow086
Ох как интересно, спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.