Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Формирование составного ключа / 7 сообщений из 7, страница 1 из 1
07.02.2007, 08:35
    #34311097
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование составного ключа
Есть несколько одинаковых баз данных, в их таблицах присутствует составной ключ
int int
[номер БД][номер записи в таблице]

За прошедшее время базы разрослись и поиск стал узким местом. Можно ли объединить этот составной ключ в один, а потом его сделать индексом, или же сделать составной индекс типа

ALLTRIM(STR(idDB)) + '_' + ALLTRIM(STR(idREC))

Что лучше?
...
Рейтинг: 0 / 0
07.02.2007, 11:52
    #34311920
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование составного ключа
Pr0teusЕсть несколько одинаковых баз данных, в их таблицах присутствует составной ключ
int int
[номер БД][номер записи в таблице]

За прошедшее время базы разрослись и поиск стал узким местом. Можно ли объединить этот составной ключ в один, а потом его сделать индексом, или же сделать составной индекс типа

ALLTRIM(STR(idDB)) + '_' + ALLTRIM(STR(idREC))

Что лучше?Только без ALLTRIM(), т.е.
STR(idDB), N) + STR(idREC, M)
...
Рейтинг: 0 / 0
07.02.2007, 11:53
    #34311923
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование составного ключа
STR(idDB, N) + STR(idREC, M)
...
Рейтинг: 0 / 0
07.02.2007, 12:01
    #34311967
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование составного ключа
2 Владимир

А можно пояснить почему без ALLTRIM?
...
Рейтинг: 0 / 0
07.02.2007, 12:06
    #34311998
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование составного ключа
А можно пояснить почему без ALLTRIM
Индексный ключ не может иметь переменую длину
...
Рейтинг: 0 / 0
07.02.2007, 13:11
    #34312342
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование составного ключа
Спасибо
...
Рейтинг: 0 / 0
08.02.2007, 00:55
    #34314374
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование составного ключа
Для преобразования полей типа Integer в строку, в данном случае, лучше использовать функцию BinToC(). Т.е. выражение индекса будет иметь вид

BinToC(idDB)+BinToC(idREC)

Выражение просто физически будет короче. Как следствие, меньше по объему индексный тег. Меньше размер индексного файла (в байтах). Быстрее поиск.

Поле типа Integer принимает значение от –2,147,483,648 до 2,147,483,647. Это значит, что при использовании STR() длина символьного ключа составит 10+10=20 символов (символ подчеркивания - лишний). А при использовании BinToC() длина ключа будет 4+4=8 символов. В 2,5 раза короче!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Формирование составного ключа / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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