![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переиндексация БД [D6, Paradox]
Sheng © (2003-07-11 09:14:00)Привет всем! Я мало работал с БД, а тут пришлось. Объясните, плз, для чего нужна переиндексация, когда в ней возникает необходимость и как это реализовать программно? Заранее Спасибо за ответы.
Соловьев (2003-07-11 11:00:00) [1]
> DenK_vrtz © (11.07.03 09:29)
еще нужно 4 пункт.
...
4. когда добавляется много записей - ускоряет загрузку удаление индекса, а потом создание по новой.
DenK_vrtz (2003-07-11 09:36:00) [2]Sheng © , я имелл ввиду (как сделать программно) - методом Удалить старый индекс и создать новый,
чтобы не было противоречий с sunwheel © (11.07.03 09:30)
sunwheel (2003-07-11 09:30:00) [3]Переиндексация нужна для востановления индеков у таблиц(ы). Необходимость в ней возникает когда индексы были испорчены, например, в результате сбоя электропитания. Программно индексы восстанавливать можно через dbiRegenIndex. Вот пример из справки:
Regenerate an index to ensure that it is up to date.
This example uses the following input:
fDbiRegenIndex(Table1, "ByCompany", "", 1);
The procedure is:
procedure fDbiRegenIndex(Tbl: TTable; IndexName, TagName: String; IndexNum: Word);
begin
Check(DbiRegenIndex(Tbl.DBHandle, nil, PChar(Tbl.TableName), nil,
PChar(IndexName), PChar(TagName), IndexNum));
end;
DenK_vrtz (2003-07-11 09:29:00) [4]Переиндексация нужна:
1. когда "сваливаются" старые индексы
2. когда необходимо добавить новый индекс
3. может еще когда... :-) (для тестирования например)
Как сделать программно:
1. при помощи методов компонентов (например,Table.AddIndex)
2. при помощи SQL запросов