:: Архив конференции по VFP до 2005 года
Re: Почему не используется RASHMORE
Бураков Сергей
Автор

Сообщений: 280
Откуда: Calgary
Дата регистрации: 07.02.2005
Насчет SYS(13,1) я ошибся, там SYS(14,1)
Отправляю (см.вложение)
m.nstr=' 903'
m.house='26'
m.flat='92'
Ratings: 0 negative/0 positive
Re: Почему не используется RASHMORE
Бураков Сергей
Автор

Сообщений: 280
Откуда: Calgary
Дата регистрации: 07.02.2005
Попробовал и SET ANSI ON и SET ANSI OFF, ничто не работает, даже BROWSE по условию
Цитата:
STR(VAL(nostreet),5)+STR(VAL(nohouse),4)+STR(VAL(charbuild),2);
+STR(VAL(noflat),4)=STR(VAL(m.nstr),5)+STR(VAL(m.house),4)
не использует RASHMORE. У меня табличка 1 500 000 записей (телефонная база Спб).
Ratings: 0 negative/0 positive
Re: Почему не используется RASHMORE
PaulWist

Сообщений: 14585
Дата регистрации: 01.04.2004
2Владимир Максимов

Цитата:
Rushmore-оптимизация не работает если:
-) Индекс содержит FOR-условие
-) Индекс имеет тип UNIQUE
-) Текущее (на момент выполнения запроса) значение настройки SET COLLATE отлично от IDXCollate() соответствующего индекса
-) Индекс поврежден (нужна периндексация)

добавлю 5-ый пункт - индекс отсутствует




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Почему не используется RASHMORE
Владимир Максимов

Сообщений: 14093
Откуда: Москва
Дата регистрации: 02.09.2000
Если заменить в условии WHERE сравнение на символ тождественного равенства (2 символа равенства подряд), то будет использован этот индекс

STR(VAL(nostreet),5)+STR(VAL(nohouse),4)+STR(VAL(charbuild),2);
+STR(VAL(noflat),4)==STR(VAL(m.nstr),5)+STR(VAL(m.house),4)

Цитата:
Using index tag Adres to rushmore optimize table kvart Rushmore optimization level for table kvart: partial
Rushmore optimization level for table str: none
Joining table kvart and table str (Cartesian product)

Если в таблице kvart создать еще простой индекс по полю noflat, то получим полную оптимизацию отбора по таблице kvart

Цитата:
Using index tag Adres to rushmore optimize table kvart
Using index tag Noflat to rushmore optimize table kvart

Rushmore optimization level for table kvart: full
Rushmore optimization level for table str: none
Joining table kvart and table str (Cartesian product)

Объединение по JOIN индекс в данном случае не использует вообще (декартово произведение). Видимо, в данном случае это будет эффективнее.




------------------
Ratings: 0 negative/0 positive
Re: Похоже, новая фича VFP9
PaulWist

Сообщений: 14585
Дата регистрации: 01.04.2004
Да не глюк.

SET ANSI OFF - помомо NONE, явно медленее выборка




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Похоже, новая фича VFP9
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Владимир!

А что получится при SET ENGINEBEHAVIOUR 70|80 ?




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Похоже, новая фича VFP9
Владимир Максимов

Сообщений: 14093
Откуда: Москва
Дата регистрации: 02.09.2000
Цитата:
А что получится при SET ENGINEBEHAVIOUR 70|80 ?
В данном случае, никак не влияет.




------------------
Ratings: 0 negative/0 positive
Re: Почему не используется RASHMORE
Бураков Сергей
Автор

Сообщений: 280
Откуда: Calgary
Дата регистрации: 07.02.2005
В том -то и дело, что == использовать в данном случае нельзя, в запросе отсутствует корпус (charbuild), к тому же пользователь при формировании запроса может не знать даже номер дома, поэтому можно использовать только =.
В VFP8 оптимизированный запрос выполняется за доли секунды, а в девятке - неоптимизированный -секунд сорок.
Ratings: 0 negative/0 positive
Re: Почему не используется RASHMORE
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
А у меня str.dbf даже не открылся - сказал - кривой индекс - переделай - vfp9 beta - а там какое-то сложное выражение для индекса




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Почему не используется RASHMORE
Бураков Сергей
Автор

Сообщений: 280
Откуда: Calgary
Дата регистрации: 07.02.2005
Индексы для STR.DBF
INDEX ON P1 TAG STREET
INDEX ON LEFT(p2,AT(" ",p2,IIF(INLIST(ASC(LEFT(LTRIM(p2),1)),48,49,50,51,52,53,54,55,56,57),2,1))-1) TAG NAMESTR
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 9 (Гостей: 9)

© 2000-2024 Fox Club 
Яндекс.Метрика