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

Сообщений: 280
Откуда: Calgary
Дата регистрации: 07.02.2005
В переменной qk находится запрос.
? qk
Цитата:
SELECT LEFT(fio,LEN(ALLT(fio))-1)+' '+RIGHT(ALLT(fio),1) AS name,;
tel as phone,LEFT(str.p2,50)+' '+nohouse+''+IIF(EMPTY(charbuild),' ',;
'к '+charbuild+' ')+noflat AS addressa,'Санкт-Петербург' ascitya ;
FROM kvart LEFT JOIN str ON nostreet=str.p1 WHERE ;
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) AND noflat;
=m.flat INTO TABLE tmpkv
SET EXACT OFF
SELE kvart
? sys(13,1)
Цитата:
STR(VAL(NOSTREET),5)+STR(VAL(NOHOUSE),4)+STR(VAL(CHARBUILD),2)+STR(VAL(NOFLAT),4)
SELE kvart
SYS(3054,12,'C')
&qk
Цитата:
Rushmore optimization level for table kvart: none
Rushmore optimization level for table str: none
Joining table kvart and table str using temp index

То есть индекс в таблице kvart не использовался. Почему ?




------------------
Ratings: 0 negative/0 positive
Re: Почему не используется RASHMORE
Владимир Максимов

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Rushmore-оптимизация не работает если:

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




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

Сообщений: 280
Откуда: Calgary
Дата регистрации: 07.02.2005
Файл переиндексировал, ни одной из вышеуказанных причин нет, а RASHMORE все равно не работает.
Но ,как показала проверка, не работает он только в VFP9, а в восьмерке и шестерке работает очень даже замечательно. По видимому, очередной глюк новой версии. У меня, вроде бы, релиз, скачивал с MAIL.ru->vfp9->vfp9.
Ratings: 0 negative/0 positive
Re: Почему не используется RASHMORE
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Вопросы

индексы (спрашиваю на всякий случай)

Цитата:
ON nostreet=str.p1

Цитата:
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)

Цитата:
noflat

что за функция

Цитата:
sys(13,1)

Выложи пример табличек с индексами в студию - попотрошим.




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

Сообщений: 1591
Откуда: Красная Орловка
Дата регистрации: 16.09.2001
Included for backward compatibility. Returns the status of the printer.
SYS(13)
Return Values
Character
Remarks
OFFLINE is returned if the printer isn't ready. READY is returned if the printer is ready.
If the printer is connected to a COM port, SYS(13) returns READY if the printer returns Clear To Send Data or Data Set Ready.
If the printer is connected to a parallel port, SYS(13) returns OFFLINE if the printer returns Out of Paper, I/O Error, Time Out, Printer Busy, or Printer Not Selected.
Example
IF SYS(13) = 'OFFLINE'
WAIT WINDOW 'Printer is offline'
ENDIF
See Also
PRINTSTATUS( ) | SET PRINTER | SYS( ) Functions Overview




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

Сообщений: 14601
Дата регистрации: 01.04.2004
Спасибо за хелп (видимо он у Вас неполный), если не трудно , поясните список параметров

Цитата:
sys(13,1)




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

Сообщений: 1591
Откуда: Красная Орловка
Дата регистрации: 16.09.2001
Да ... знает :puke:




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

Сообщений: 14601
Дата регистрации: 01.04.2004
Ну, вот - внимательнее читать надо исходные посты, поэтому и возникают дополнительные вопросы.




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

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Вот это да! Оказывается, при использовании функций в выражении индекса в VFP9, т.е. индекс вида

INDEX ON STR(MyField) TAG strMyField

В запросе вида:

SELECT * FROM MyTable WHERE STR(MyField) = '123'

SYS(3054) покажет FULL только если установлена настройка SET ANSI ON или использовано тождественное равенство

SELECT * FROM MyTable WHERE STR(MyField) == '123'

Правда я еще не проверял - это просто глюк SYS(3054) или действительно нет оптимизации. Сейчас проверю на больших объемах.




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

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Опаньки. Похоже так и есть. В смысле НЕ глюк. В смысле при сравнении символьных строк в командах Select-SQL в VFP9 индекс используется только при настройке SET ANSI ON или использовании тождественного равенства.

Подозреваю, это следствие введение типа данных VarChar. Правда, огорчает, что об этой особенности нигде в HELP не упомянуто.




------------------
Ratings: 0 negative/0 positive


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

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

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