Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Скорость SELECTа различается в 450 раз... / 14 сообщений из 14, страница 1 из 1
02.09.2008, 16:45
    #35518621
Yras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
Таблица около 1.6 млн. записей
Структура ID C(10), колличество и др.
По ID индекс.

Код
Код: plaintext
1.
2.
3.
SELECT Osnov
SET ORDER TO ID
l_ID = '____277645'
SELECT * FROM Osnov WHERE  Osnov.ID = l_ID  INTO CURSOR Temp_osn

В командном окне выполняется около 40 миллисекунд, в exe-шнике 17-18 секунд...

Фантастика?

Или может быть просто носом в букварь ткнете...

PS Visual FoxPro 9.0 SP2
...
Рейтинг: 0 / 0
02.09.2008, 16:51
    #35518641
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
Похоже в EXE индекс не используется. Иногда фоксовый рантайм (т.е. из EXE) не так отрабатывает как в оболочке.

Посмотри в обоих случаях что пишет:
Код: plaintext
? set('COLLATE')

попробуй еще NOFILTER в конец запроса добавить.
...
Рейтинг: 0 / 0
02.09.2008, 16:52
    #35518642
Скорость SELECTа различается в 450 раз...
посмотри SYS(3054)
там и там
...
Рейтинг: 0 / 0
02.09.2008, 16:56
    #35518661
Yras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
Dima TПохоже в EXE индекс не используется. Иногда фоксовый рантайм (т.е. из EXE) не так отрабатывает как в оболочке.

Посмотри в обоих случаях что пишет:
Код: plaintext
? set('COLLATE')

попробуй еще NOFILTER в конец запроса добавить.

В среде RUSSIAN
В проге MACHINE

NOFILTER не помогло
...
Рейтинг: 0 / 0
02.09.2008, 17:01
    #35518668
Yras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
12345вышелзайчикпогулятьпосмотри SYS(3054)
там и там

В среде пишет:

Using index tag Id to rushmore optimize table osnov
Rushmore optimization level for table osnov: partial

В программе:

Уровень оптимизации Rushmore для таблица osnov: отсутствует

Дык вопрос, почему так может быть ...
...
Рейтинг: 0 / 0
02.09.2008, 17:04
    #35518679
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
YrasВ среде RUSSIAN
В проге MACHINE
Попробуй в проге
Код: plaintext
set collate to "russian"

Это только для проверки. Думаю поможет. Навсегда только не оставляй в коде.
Настройка set collate влияет на сравнение строк, для индексов запоминается в момент создания индекса. При работе необходимо чтобы всегда и везде была одна и таже установка set collate иначе и другие глюки могут быть.
...
Рейтинг: 0 / 0
02.09.2008, 17:06
    #35518686
Yras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
Dima T YrasВ среде RUSSIAN
В проге MACHINE
Попробуй в проге
Код: plaintext
set collate to "russian"

Это только для проверки. Думаю поможет. Навсегда только не оставляй в коде.
Настройка set collate влияет на сравнение строк, для индексов запоминается в момент создания индекса. При работе необходимо чтобы всегда и везде была одна и таже установка set collate иначе и другие глюки могут быть.

Угу, оно. Спасибо. В среде поменял на машин и сразу тормоза.
...
Рейтинг: 0 / 0
02.09.2008, 17:09
    #35518694
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
Yras[quot Dima T]Угу, оно. Спасибо. В среде поменял на машин и сразу тормоза.

Почитай про SET COLLATE
...
Рейтинг: 0 / 0
02.09.2008, 17:23
    #35518730
Yras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
Dima T Yras[quot Dima T]Угу, оно. Спасибо. В среде поменял на машин и сразу тормоза.

Почитай про SET COLLATE

Ещё раз ОГРОМНОЕ СПАСИБО за подсказку и за букварь ;)

Руками посношу все индексы, назначу одинаковый collate в среде и пропишу в программе, а потом индексы пересоздам!
...
Рейтинг: 0 / 0
03.09.2008, 05:10
    #35519308
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
Не помню, в чем была суть, но в младших версиях Foxa set collate "russian"
выкидывал подлянку при индексном поиске. При чем по моему даже на числовых
полях (но точно не помню).

Подскажите, эту проблему пофиксили и где об этом можно почитать?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
03.09.2008, 09:13
    #35519426
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
Galyamov Rinat
Не помню, в чем была суть, но в младших версиях Foxa set collate "russian"
выкидывал подлянку при индексном поиске. При чем по моему даже на числовых
полях (но точно не помню).


ниразу такого не было. ВОт длина в выражениях должна быть 120 символов в отличии от машинного и в национальных кодировках большие буквы=маненьким, что не как в машинном
...
Рейтинг: 0 / 0
03.09.2008, 10:44
    #35519633
karly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
Galyamov Rinat
Не помню, в чем была суть, но в младших версиях Foxa set collate "russian"
выкидывал подлянку при индексном поиске. При чем по моему даже на числовых
полях (но точно не помню).

Подскажите, эту проблему пофиксили и где об этом можно почитать?

Было в VFP5. При Set collate to Russian индексы по числовым полям выдавали ошибочные результаты. В VFP6 пофиксено, более никогда не проявлялось.
...
Рейтинг: 0 / 0
05.09.2008, 23:50
    #35525691
СРО09ИТ22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
SET ORDER TO лишнее.
Быстрее будет без установки активного тега.

SET ORDER TO 0
...
Рейтинг: 0 / 0
06.09.2008, 17:55
    #35526027
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость SELECTа различается в 450 раз...
СРО09ИТ22SET ORDER TO лишнее.
Быстрее будет без установки активного тега.

SET ORDER TO 0
Для команд Select-SQL это роли не играет, поскольку они работают со своими собственными (внутренними) рабочими областями. Как следствие, никакие настройки рабочих областей (кроме глобальных вроде SET DELETED) не оказывают на их работу никакого влияния.

Хотя на работу сканирующих команд вроде SCAN, LOCATE, CALCULATE это влияние окажет.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Скорость SELECTа различается в 450 раз... / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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