Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / integer-поля и SET KEY TO / 7 сообщений из 7, страница 1 из 1
16.08.2004, 20:57
    #32651769
mrSmith
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
integer-поля и SET KEY TO
вопрос к знатокам по VFP6:

в таблице есть поле типа integer. делаю по нему индекс. устанавливаю SET KEY TO <int> и получаю существенное торможение при попытке вызвать BROWSE.
если делаю индекс по STR(<поле>) и SET KEY TO <chr>, BROWSE открывается моментально.

я чего-то не понимаю?
...
Рейтинг: 0 / 0
17.08.2004, 11:32
    #32652350
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
integer-поля и SET KEY TO
авторделаю по нему индекс.

Все зависит именно от того, по какому выражению делается индекс.
Если index on <поле> tag <тег>, то set key to <int>
Если index on str(<поле>) tag <тег>, то set key to str(<int>)
Тогда будет все Ok
...
Рейтинг: 0 / 0
17.08.2004, 12:03
    #32652433
mrSmith
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
integer-поля и SET KEY TO
вариант
"Если index on <поле> tag <тег>, то set key to <int>"

почему-то работает существенно медленнее, чем вариант
"Если index on str(<поле>) tag <тег>, то set key to str(<int>)"

не могу понять из-за чего.
...
Рейтинг: 0 / 0
17.08.2004, 13:47
    #32652787
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
integer-поля и SET KEY TO
Учитывая, что фокс хранит свои индексные ключи в символьном виде то ничего удивительного - не тратится время на преобразование
...
Рейтинг: 0 / 0
17.08.2004, 20:40
    #32653672
mrSmith
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
integer-поля и SET KEY TO
проверил:

если в качестве индексного выражения беру <int поле> или BINTOC(<int поле>), то размер индексного файла получается одинаковый и при этом меньше, чем размер индексного файла по выражению STR(<int поле>,5) - т.е. индексные ключи для integer-полей хранятся по-видимому в 4-байтовой последовательности как и сами поля.

по идее никаких лишних преобразований быть не должно.
...
Рейтинг: 0 / 0
17.08.2004, 20:56
    #32653682
mrSmith
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
integer-поля и SET KEY TO
забавно еще то, что командой BROWSE KEY <число> окно открывается моментально и не тормозит при просмотре, а последовательностью команд SET KEY TO <число> и BROWSE NORMAL тормозит хуже, чем если использовать SET FILTER
...
Рейтинг: 0 / 0
18.08.2004, 18:08
    #32655547
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
integer-поля и SET KEY TO
авторзабавно еще то, что командой BROWSE KEY <число> окно открывается моментально и не тормозит при просмотре, а последовательностью команд SET KEY TO <число> и BROWSE NORMAL тормозит хуже, чем если использовать SET FILTER

Несколько неожиданное поведение... Не верится... Что-то не так.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / integer-поля и SET KEY TO / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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