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

есть таблица с именами и фамилиями и прочей ерундой
как создать индексы, чтобы
SELECT * FROM tab WHERE F='Иванов' AND I='Иван' AND O='Иванович'
искался по индексам
...
Рейтинг: 0 / 0
Индексы
    #34049940
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
index on F+I+O tag FIO
...
Рейтинг: 0 / 0
Индексы
    #34049995
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При таком синтаксисе должны быть отдельные индексы по каждому полю в отдельности.

index on F tag F
index on I tag I
index on O tag O
...
Рейтинг: 0 / 0
Индексы
    #34052392
FOX_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE indexfio(fam c( 20 ), nam c( 20 ), otch c( 20 ))

INSERT INTO indexfio values('Богатырев','Илья','Федорович')
INSERT INTO indexfio values('Скоробогатиков','Петр','Алексеевич')
INSERT INTO indexfio values('Громоверзев','Остап','Васильевич')

LOCAL cmemvar
=SYS( 3054 , 2 ,"cmemvar")
SELECT * FROM indexfio WHERE ALLTRIM(fam)+ALLTRIM(nam)+ALLTRIM(otch)==ALLTRIM('Богатырев')+ALLTRIM('Илья')+ALLTRIM('Федорович')
? cmemvar
LOCAL cmemvar
=SYS( 3054 , 12 ,"cmemvar")
SELECT * FROM indexfio WHERE ALLTRIM(fam)+ALLTRIM(nam)+ALLTRIM(otch)==ALLTRIM('Богатырев')+ALLTRIM('Илья')+ALLTRIM('Федорович')
? cmemvar

забавно все это ;-)
...
Рейтинг: 0 / 0
Индексы
    #34052401
FOX_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри, забыл про
Код: plaintext
ALLTRIM(fam)+ALLTRIM(nam)+ALLTRIM(otch)
...
Рейтинг: 0 / 0
Индексы
    #34052402
FOX_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин, из клипбоарда не пастнулось:
Код: plaintext
INDEX on ALLTRIM(fam)+ALLTRIM(nam)+ALLTRIM(otch) TAG fio
...
Рейтинг: 0 / 0
Индексы
    #34052433
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выдай и посмотри на результат.
Код: plaintext
SET DELETED off
...
Рейтинг: 0 / 0
Индексы
    #34052467
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beviceПодскажите,

есть таблица с именами и фамилиями и прочей ерундой
как создать индексы, чтобы
SELECT * FROM tab WHERE F='Иванов' AND I='Иван' AND O='Иванович'
искался по индексам
Установите SYS(3054,1) и "поиграйте" с индексами, обращаю внимание на уровень оптимизации. Желательно достичь уровень Full.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Индексы
    #34052522
FOX_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот я тоже бы хотел обратить внимание на Rushmore level optimization, только не автора поста, а специалистов.

Что подразумеватеся под filter optimization levels и join optimization levels ? Только не на уровне догадок "это для джойна, а это для фильтра", а по существу. Т.е. в каких случаях оптимизатор реально использует эти варианты оптимизации ?

Ведь подспудных вопросов много: например, как понимать джойн-оптимизацию при использовании 2-х таблиц (master-detail), когда в условии джойна в селекте нестрогие равенства указать (в примере выше работает только при условии строго равенства) - подразумевается, что джойн-оптимизация - это вроде как для ключей с точным сравнением выражений или в условиях селекта должно быть выражение, адекватное составному индексу ?? А filter level - это что для выборок и сопутствующих операций по одной таблице или как название понимать ?!
...
Рейтинг: 0 / 0
Индексы
    #34052537
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FOX_userблин, из клипбоарда не пастнулось:
Код: plaintext
INDEX on ALLTRIM(fam)+ALLTRIM(nam)+ALLTRIM(otch) TAG fio

Лучше все же сделать три отдельных Tag-a
INDEX on FAM tag Fam
INDEX on NAM tag Nam
INDEX on OTCH tag Otch
ожно добавить и TRIM() но тогда надо и запрашивать с использованием этой функции
Иначе при сложении индекс получается слишком большой.
Сбольшим индексом хуже работать и бывают случаи что он чего то у ctmz теряет
...
Рейтинг: 0 / 0
Индексы
    #34052813
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FOX_userблин, из клипбоарда не пастнулось:
Код: plaintext
INDEX on ALLTRIM(fam)+ALLTRIM(nam)+ALLTRIM(otch) TAG fio


НЕЛЬЗЯ использовать такой индекс:

Запись 1

fam = "12 "
nam = "34 "
otch = "56 "

Ключ = "123456"

Запись 2

fam = "1 "
nam = "23 "
otch = "456 "

Ключ = "123456"

Значение записей разное, но значение ключа ОДИНАКОВОЕ. Что найдете в результате?

Если уж так хочется играться с длинными ключами, то пишите так:

Код: plaintext
INDEX on PADR(ALLTRIM(fam), 50 )+PADR(ALLTRIM(nam), 50 )+PADR(ALLTRIM(otch), 50 ) TAG fio

Каждое слагаемое должно иметь фиксированное количество символов.

Еще вариант - дополнительный символ разделитель между слагаемыми. Но тут всегда есть шанс "нарваться" на этот символ в тексте самого слагаемого и опять получить не однозначность.
...
Рейтинг: 0 / 0
Индексы
    #34054231
FOX_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to ВладимирМ:
Вопрос о практической значимости примера не ставился (никто не говорил, что индекс fio ключевой - нормализацию никто не отменял). Я спросил, как понимать типы оптимизации, означенные в справочном руководстве. Вы можете пояснить этот момент ?

очень хотелось бы услышать ответ от MSFT, если по их мнению вопрос достоин внимания...
...
Рейтинг: 0 / 0
Индексы
    #34054745
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FOX_userto ВладимирМ:
Вопрос о практической значимости примера не ставился (никто не говорил, что индекс fio ключевой - нормализацию никто не отменял). Я спросил, как понимать типы оптимизации, означенные в справочном руководстве. Вы можете пояснить этот момент ?

очень хотелось бы услышать ответ от MSFT, если по их мнению вопрос достоин внимания...
Как Вы думаете, что вообще может сказать НЕ разработчик FoxPro на вопрос о логике работы внутреннего механизма среды, к тому же являющейся коммерческой тайной MicroSoft?

Максимум, то что описано в HELP + свои догадки.

Поскольку ни то, ни другое Вас не интересует, а также то, что пишет сама функция Вас не устравивает, то и ответа Вы не получите.

Если интерсено, то почитай вот эту тему

http://forum.foxclub.ru/read.php?29,144309,144315

В ней представитель команды разработчиков FoxPro Алексей Цингауз дает кое-какие намеки на то, что такое Rushmore-оптимизация и как она работает.
...
Рейтинг: 0 / 0
Индексы
    #34054872
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Индексы
    #34057636
FOX_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to ВладимирМ:
без намерения оскорбить, но: не думал, что вопрос об оптимизации может вызвать такую истерическую реплику со стороны DB-программера :-(
обычно в руководствах подробно расписаны принципы написания оптимизируемых запросов. вы считаете, что тайная практика написания оптимизируемых запросов должна быть недоступна простым смертным ?! а вот коммерческие тайны для этого не нужно разглашать. отнюдь. возмите любое руководство по промышленному SQL-серверу и, что называется, почувствуйте разницу. совершенно понятно, что вопросы применения рашмор-оптимизации в соединениях в документации не отражены должным образом.

to SergeyCh:
big thnx, любопытный материал.
...
Рейтинг: 0 / 0
Индексы
    #34057974
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FOX_userto ВладимирМ:
без намерения оскорбить, но: не думал, что вопрос об оптимизации может вызвать такую истерическую реплику со стороны DB-программера :-(
Почему "истеричную". Это как раз Ваш вопрос из разряда "странных" и откровенно "ламерских". Типа: "я не знаю, но все что Вы мне можете сказать - это заведомая туфта, которой я не верю"

FOX_userобычно в руководствах подробно расписаны принципы написания оптимизируемых запросов.
Разумеется. И в HELP по FoxPro все это подробнейшим образом расписано. Однако Вы прямо заявили, что то, что написано в HELP Вас не интересует.

FOX_userсовершенно понятно, что вопросы применения рашмор-оптимизации в соединениях в документации не отражены должным образом.
Смотря что именно Вы понимаете под "должным образом". В Help есть обширнейшая статья о принципах Rushmore-оптимизации. Называется

"Using Rushmore Query Optimization to Speed Data Access"

Или Вас интересует когда будет использована Join-оптимизация, а когда Filter-оптимизация? А это как-то влияет на производительность запроса? Не сама оптимизация, разумеется, а именно выбор между Join и Filter-оптимизациями.

Т.е. ответы-то у меня есть, но они Вас не интересуют, о чем я Вам и сообщил. Вовсе не желая как-то оскорбить. Просто констатация того факта, что в Вашей постановке вопроса ответа нет и быть не может.

Кстати, Ваши примеры не дают ответ на вопрос, что же Вас интересует. Они совершенно одинаковые. Куда Вы там индекс пристроить хотели?

Надеюсь, Вы в курсе чем отличается равенство от тождественного равенства в командах Select-SQL? Это описано в настройке SET ANSI.
...
Рейтинг: 0 / 0
Индексы
    #34059141
FOX_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to ВладимирМ:
почему истеричную ? объясню: писать вопрошающему ответы в стиле "да хтож тебе милок такое скажет, даже разработчики не знают такого" - это тратить чужое время и ресурсы на бесполезную дискуссию. надеюсь вы не из флэймеров, которые в любом споре последнее слово за собой оставить пытаются...

чтобы флейм не разводить, вам читать
>любое руководство по промышленному SQL-серверу и, что называется, >почувствуйте разницу.
до момента, когда будет понятно, что в документации FOXa моменты, связанные с парсингом запроса и связанная с этим тактика оптимизация, не отражены.
и нечего флэйм разводить. ваше знание документации может кого-то и впечатлит, но тольно не тех кто ее читал.
...
Рейтинг: 0 / 0
Индексы
    #34059491
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, это по нашему. "Я этого не знаю, но все что Вы можете мне сказать по этому поводу меня не интересует, поскольку это исходит именно от Вас"

Еще раз. Я неоднократно Вам пытался сказать - ответы на все Ваши вопросы ЕСТЬ. Более того, они ЕСТЬ в документации. Однако Вы их просто игнорируете.

По сути, Вы хотите знать не то, что написано в HELP, а ТОЛКОВАНИЕ того, что там написано. Однако Вы требуете, чтобы это ТОЛКОВАНИЕ (интерпретация) была также описана в HELP или же Вам это объяснили разработчики FoxPro лично (делать им больше нечего).

Вот это я Вам и сказал. Определитесь все-таки с тем, что же Вы хотите? Вам "шашечки" или ехать? Вы хотите понять логику работы, или чтобы это логику работы объяснили конкретные люди и в определенном месте? (эээ.. в прямом смысле... ) Вам нужна определенная форма ответа или сам ответ?
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Индексы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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