Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Страшно тормозит VFP7 / 15 сообщений из 15, страница 1 из 1
11.03.2003, 13:41
    #32117346
Yuri79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
При создании запроса в VFP7 из 2-х 20-тимеговых таблиц он жутко тормозит, TEMPа жрет точно больше 2 Гб (до конца не дожидался). Что с ним?
...
Рейтинг: 0 / 0
11.03.2003, 13:44
    #32117351
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
На запрос можно глянуть?
...
Рейтинг: 0 / 0
11.03.2003, 15:16
    #32117479
Yuri79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
Да хотя бы такой простенький запрос:

SELECT Mkart.grup, Mkart.nnum, Mkart.name, Spr_part.ocena1;
FROM mkart INNER JOIN spr_part ;
ON Mkart.grup = Spr_part.grup

Mkart - 4 Мб
Spr_part - 21 Мб
...
Рейтинг: 0 / 0
11.03.2003, 16:05
    #32117537
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
Странно все это. Запрос нормальный, объемы тоже. Попробовал изобразить что-то подобное с млн записей - вроде все вполне приемлимо. А только фокс тормозит? Случайно не windows98?
...
Рейтинг: 0 / 0
12.03.2003, 08:07
    #32117885
Yuri79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
Пробовал в Win98 и в WinXP, то же самое, может в настройках что есть, VFP английский
...
Рейтинг: 0 / 0
12.03.2003, 10:08
    #32117996
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
А что с остальными запросами? Может быть проблема с одним из файлов?
...
Рейтинг: 0 / 0
12.03.2003, 10:58
    #32118069
Yuri79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
Я так понял, что тормозит при связывании двух или более таблиц, при запросе из одной таблицы все нормально
...
Рейтинг: 0 / 0
12.03.2003, 11:08
    #32118085
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
может REINDEX?

Кстати, такая вот конструкция у меня выполняется 18 сек:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
x=SECONDS()
CREATE CURSOR mkart (grup i, nnum i , name c( 10 ))
CREATE CURSOR spr_part (grup i, ocena1 i , name c( 10 ))
FOR i= 1  TO  1000 
 FOR j= 1  TO  1000 
  INSERT INTO mkart (grup, nnum, name) VALUES (i,INT(RAND()* 100 )+ 1 ,SYS( 2015 ))
 ENDFOR 
 INSERT INTO spr_part (grup, ocena1, name) VALUES (i,INT(RAND()* 1000 )+ 1 ,SYS( 2015 ))
ENDFOR 
SELECT Mkart.grup, Mkart.nnum, Mkart.name, Spr_part.ocena1; 
FROM mkart INNER JOIN spr_part ; 
ON Mkart.grup = Spr_part.grup INTO CURSOR temp
?SECONDS()-x


Может что-то надо добавить для чистоты эксперимента (memo, cdx etc)?
...
Рейтинг: 0 / 0
13.03.2003, 10:45
    #32118987
Yuri79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
Этот запрос выполняется нормально за 15 сек

А если связать таблицы по символьному полю

x=SECONDS()
CREATE CURSOR mkart (grup c, nnum i , name c(10))
CREATE CURSOR spr_part (grup c, ocena1 i , name c(10))
FOR i=1 TO 1000
FOR j=1 TO 1000
INSERT INTO mkart (grup, nnum, name) VALUES (STR(i),INT(RAND()*100)+1,SYS(2015))
ENDFOR
INSERT INTO spr_part (grup, ocena1, name) VALUES (STR(i),INT(RAND()*1000)+1,SYS(2015))
ENDFOR
SELECT Mkart.grup, Mkart.nnum, Mkart.name, Spr_part.ocena1;
FROM mkart INNER JOIN spr_part ;
ON Mkart.grup = Spr_part.grup INTO CURSOR temp
?SECONDS()-x

то опять 2 Гб TEMPа не хватат
...
Рейтинг: 0 / 0
13.03.2003, 11:21
    #32119053
Jimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
2 Yuri79

1. SP1 for VFP7 накатил?
2. Индексы по связываемым полям есть?
3. Таблицы в этой версии созданы?
4. Кодовые страницы и collation правильно выставлены (раз уж объединение по char)?
...
Рейтинг: 0 / 0
13.03.2003, 11:38
    #32119078
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
Найдите 3 различия:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
CLEAR
CLOSE ALL 

* Мой вариант c Integer ( 13 . 553 )

x=SECONDS()
CREATE CURSOR mkart (grup i, nnum i , name c( 10 ))
CREATE CURSOR spr_part (grup i, ocena1 i , name c( 10 ))
FOR i= 1  TO  1000 
 FOR j= 1  TO  1000 
  INSERT INTO mkart (grup, nnum, name) VALUES (i,INT(RAND()* 100 )+ 1 ,SYS( 2015 ))
 ENDFOR 
 INSERT INTO spr_part (grup, ocena1, name) VALUES (i,INT(RAND()* 1000 )+ 1 ,SYS( 2015 ))
ENDFOR 
SELECT Mkart.grup, Mkart.nnum, Mkart.name, Spr_part.ocena1; 
FROM mkart INNER JOIN spr_part ; 
ON Mkart.grup = Spr_part.grup INTO CURSOR temp
?SECONDS()-x
CLOSE ALL 

* Мой вариант c String ( 17 . 356 )

x=SECONDS()
CREATE CURSOR mkart (grup c( 10 ), nnum i , name c( 10 ))
CREATE CURSOR spr_part (grup c( 10 ), ocena1 i , name c( 10 ))
FOR i= 1  TO  1000 
    FOR j= 1  TO  1000 
		INSERT INTO mkart (grup, nnum, name) VALUES (STR(i),INT(RAND()* 100 )+ 1 ,SYS( 2015 ))
	ENDFOR 
	INSERT INTO spr_part (grup, ocena1, name) VALUES (STR(i),INT(RAND()* 1000 )+ 1 ,SYS( 2015 ))
ENDFOR 
SELECT Mkart.grup, Mkart.nnum, Mkart.name, Spr_part.ocena1; 
FROM mkart INNER JOIN spr_part ; 
ON Mkart.grup = Spr_part.grup INTO CURSOR temp
?SECONDS()-x
CLOSE ALL 
x=SECONDS() 
 
* Твой вариант (Не дождался :( )

CREATE CURSOR mkart (grup c, nnum i , name c( 10 ))
CREATE CURSOR spr_part (grup c, ocena1 i , name c( 10 )) 
FOR i= 1  TO  1000  
FOR j= 1  TO  1000  
INSERT INTO mkart (grup, nnum, name) VALUES (STR(i),INT(RAND()* 100 )+ 1 ,SYS( 2015 )) 
ENDFOR 
INSERT INTO spr_part (grup, ocena1, name) VALUES (STR(i),INT(RAND()* 1000 )+ 1 ,SYS( 2015 )) 
ENDFOR 
SELECT Mkart.grup, Mkart.nnum, Mkart.name, Spr_part.ocena1; 
FROM mkart INNER JOIN spr_part ; 
ON Mkart.grup = Spr_part.grup INTO CURSOR temp 
?SECONDS()-x


Как я понял в случае CREATE CURSOR mkart (grup c, nnum i , name c(10)) поле grup C(1), вариантов заполнения немного, количество записей в запросе не 1000000, а 1000000*1000. Вот он и тормозит :( Скорее всего у тебя много повторений ключего поля в таблице spr_part, проверь.
...
Рейтинг: 0 / 0
14.03.2003, 09:36
    #32119865
Yuri79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
Я только начал изучать SQL, запрос создавал в дизайнере SQL , базы формата DBASE IV, collate вроде русский. А по трем запросам то же самое
...
Рейтинг: 0 / 0
14.03.2003, 10:29
    #32119915
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
2Yuri79

Так что, вопрос снимается? Совет: никогда не пользуйся дизайнером
...
Рейтинг: 0 / 0
14.03.2003, 14:05
    #32120153
Yuri79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
Но в другой проге такие запросы даже по сетке выполняются нормально. Все таки видимо что-то с языком.
...
Рейтинг: 0 / 0
17.03.2003, 13:45
    #32121120
Jimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Страшно тормозит VFP7
Повторяю вопрос: Установлен ли Service Pack 1 for Visual FoxPro 7 ?

Если нет, то немедленно ставь, т.к. без него VFP7 - очень глючная игрушка, не более. Так же необходимо установить патч для исполнительной системы, управляющей работой exe-файлов. Все это здесь: http://msdn.microsoft.com/vfoxpro/downloads/updates/default.asp
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Страшно тормозит VFP7 / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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