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

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

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

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

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

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

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

А можно пояснить почему без ALLTRIM?
...
Рейтинг: 0 / 0
Формирование составного ключа
    #34311998
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно пояснить почему без ALLTRIM
Индексный ключ не может иметь переменую длину
...
Рейтинг: 0 / 0
Формирование составного ключа
    #34312342
Pr0teus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
...
Рейтинг: 0 / 0
Формирование составного ключа
    #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
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Формирование составного ключа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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