powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / индексация
10 сообщений из 10, страница 1 из 1
индексация
    #34917804
Гость 0611
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В программе есть функция переиндексации базы. На всех базах индексируется относительно быстро, но на одной просто ОЧЕНЬ медленно (но индексирует, но ОЧЕНЬ медленно). Вопрос: с чем это м.б. связано?
...
Рейтинг: 0 / 0
индексация
    #34918180
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может с ее размером?
...
Рейтинг: 0 / 0
индексация
    #34918357
Гость 0611
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так если бы.... В процедуре переиндексации есть:
REMOVE TABLE <имя индексируемой таблицы> - вот в этой строчке и тормозит...
...
Рейтинг: 0 / 0
индексация
    #34918400
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость 0611Так если бы.... В процедуре переиндексации есть:
REMOVE TABLE <имя индексируемой таблицы> - вот в этой строчке и тормозит...
А это зачем при индексировании?
Так и базу похерить недолго при убиении задачи во время индексирования.

тут почитай
...
Рейтинг: 0 / 0
индексация
    #34918591
Гость 0611
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А не я автор, а шишки мне достаются... Спасибо за ссылку... будет время перепишу ... но все же не понятно почему в этот момент тормозит...
...
Рейтинг: 0 / 0
индексация
    #34918894
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость 0611А не я автор, а шишки мне достаются... Спасибо за ссылку... будет время перепишу ... но все же не понятно почему в этот момент тормозит...
Может с контейнером БД что не так. Такой код есть при индексировании? :
Код: plaintext
1.
2.
3.
	open database rees excl
	validate database
	pack database

Но лучше перепиши, а то сглючит - на восстановление больше времени потратишь
...
Рейтинг: 0 / 0
индексация
    #34918937
Гость 0611
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такого в коде точно нет... но без remove вообще не работает(((... попробую как нить переписать
...
Рейтинг: 0 / 0
индексация
    #34919091
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость 0611Такого в коде точно нет... но без remove вообще не работает(((... попробую как нить переписать

Добавь:
Код: plaintext
1.
2.
	open database MyBD excl
	validate database
	pack database
или руками сделай
...
Рейтинг: 0 / 0
индексация
    #34919294
Гость 0611
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код :

SELECT tables_
SCAN
kod_=tables_.kod
ntable=ALLTRIM(tables_.ntable)
SET SAFETY OFF

IF FILE(pathtod+Alltrim(ntable)+'.dbf')=.T.
IF INDBC(ntable,"TABLE")
REMOVE TABLE &ntable && !!!!!!тут тормозит
ENDIF
IF File(pathtod+Alltrim(ntable)+'.cdx')=.T.
DELETE FILE pathtod+ALLTRIM(ntable)+'.cdx' && óäàëåíèå èíäåêñíîãî ôàéëà
ENDIF

SELECT tables_
use_tabl='use '+ALLTRIM(pathtod)+ALLTRIM(ntable)+' alias ntables exclusive in 0'

ON Error a=''
&use_tabl
ON Error
IF !USED('ntables')
&use_tabl
ENDIF

SELECT index_table
SCAN FOR kod=tables_.kod
nkey=ALLTRIM(index_table.KEY)
ntag=ALLTRIM(index_table.TAG)+IIF(index_table.TYPE='C' or index_table.TYPE='P',' CANDIDATE','')

IF index_table.Type='C' Or index_table.Type='P'
Select Count(&nkey)As kcodes,&nkey as codes From ntables Group By &nkey Into Cursor cur1
Select * From cur1 Where kcodes>1 Into Cursor cur2

IF RECCOUNT('cur2')<>0
MESSAGEBOX('Ошибка!')
***
ELSE
SELECT ntables
INDEX ON &nkey TAG &ntag
ENDIF
ELSE
SELECT ntables
INDEX ON &nkey TAG &ntag
ENDIF

SELECT index_table
ENDSCAN

SELECT ntables
use
ntable=ALLTRIM(ntable)+'.dbf'
addtabl='ADD TABLE '+ALLTRIM(pathtod)+ALLTRIM(tables_.ntable)+'.dbf'
&addtabl
ELSE
****
ENDIF
SET SAFETY On
ENDSCAN


tables_ - таблица, где хранятся имена таблиц базы
index_table - тут хранятся индексы для таблиц базы

а база рашьне открывается exclusive
...
Рейтинг: 0 / 0
индексация
    #34919423
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость 0611Код :

SELECT tables_
...

а база рашьне открывается exclusive

Руками в IDE запусти, а потом свою индексацию. проверить чтобы.

Вставить надо где нибудь между открытием базы и SELECT tables_:
Код: plaintext
1.
validate database
pack database

Или руками в IDE запусти, а потом свою индексацию. проверить чтобы.
Посмотри еще размер *.DBC и *.DCT файлов. Думаю они совсем не маленькие.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / индексация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]