Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение двух таблиц 
:(
    Опции темы
Данкинг
Дата 9.6.2012, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Цитата(Reese @  9.6.2012,  14:01 Найти цитируемый пост)
Причем тут сохранение таблицы?

В смысле, если открыть таблицу, записать что-нибудь в поле и снять задачу VFP, то записанные данные не сохранятся. 
Цитата(Reese @  9.6.2012,  14:01 Найти цитируемый пост)
База лежит на сетевом диске, работают два пользователя

В сетевом режиме на фоксе лучше уже вообще не работать, он всё же не для этого.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Reese
Дата 9.6.2012, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1



Цитата

В смысле, если открыть таблицу, записать что-нибудь в поле и снять задачу VFP, то записанные данные не сохранятся. 

Конечно. В этом случае сохранение происходит только после ухода с поля. Т.к. в момент ручного редактирования мы работаем с буфером. (Не помню, можно ли его отключить)
Но в любом случае это не называется работой с БД


Цитата

В сетевом режиме на фоксе лучше уже вообще не работать, он всё же не для этого.

Он именно для этого и разрабатывался.

Это сообщение отредактировал(а) Reese - 9.6.2012, 15:03
PM MAIL   Вверх
Данкинг
Дата 9.6.2012, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Цитата(Reese @  9.6.2012,  15:34 Найти цитируемый пост)
В этом случае сохранение происходит только после ухода с поля. 

Нет. Сохранение происходит или при закрытии (нормальном) фокса, или же принудительно командой FLUSH.
Цитата(Reese @  9.6.2012,  15:34 Найти цитируемый пост)
Он именно для этого и разрабатывался.

Может быть, когда альтернативы не было. Но сейчас я не представляю сетевую работу с фоксовой таблицей в 13 миллионов записей (какая вот у меня есть на FireBird).


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Reese
Дата 9.6.2012, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1



Цитата

Нет. Сохранение происходит или при закрытии (нормальном) фокса, или же принудительно командой FLUSH.

Да. тут я не совсем прав. Если быть точным, то сохранение происходит в зависимости от типа буферизации. Не помню сейчас как они точно называются, но в двух случаях запись происходит при смене строки (тут я тоже не совсем точен насчет поля). Но это что касается работы с таблицей вручную, а так с таблицами все таки не работают. Только если что поправить надо.

Цитата

Может быть, когда альтернативы не было. Но сейчас я не представляю сетевую работу с фоксовой таблицей в 13 миллионов записей (какая вот у меня есть на FireBird). 


Он и сейчас занимает свою нишу. Но сепецов по нему все меньше и меньше, да и Microsoft не хочет его развивать. Не выгоден он им. 

Да. 13 миллионов будет уже тяжеловато для фокса. Но на 10-20 рабочих мест при размере таблиц в пределах 10 миллионов с сумарным весом БД  в пределах 2 гб - фокс чуствует себя совсем не плохо. Опять же вместо сервера можно поставить простенький NAS (главное чтоб SMB нормально поддерживал и блокировки работали) и в случае какой нибудь поломки можно и по телефону объяснить что и куда скопировать т.к. уж чего-чего а с файлами всякие тетушки обычно справляются. Если что-то крупнее, то я тоже предпочту FireBird или DB2 (благо бесплатная версия не имеет ограничений на размер БД) к ним можно из того же Фокса подключиться.
PM MAIL   Вверх
Данкинг
Дата 9.6.2012, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Цитата(Reese @  9.6.2012,  18:47 Найти цитируемый пост)
Если быть точным, то сохранение происходит в зависимости от типа буферизации. 

А где она меняется?
Цитата(Reese @  9.6.2012,  18:47 Найти цитируемый пост)
 Но это что касается работы с таблицей вручную, а так с таблицами все таки не работают. 

Работают-работают. smile 
Цитата(Reese @  9.6.2012,  18:47 Найти цитируемый пост)
10 миллионов с сумарным весом БД  в пределах 2 гб 

Это если там одно поле только. Ну или два.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Reese
Дата 9.6.2012, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1



Цитата

А где она меняется?

свойство BufferMode у объектов _screen и form

Цитата

Это если там одно поле только. Ну или два.

15 полей. объем таблицы - чуть меньше 1 Гб

Цитата

Работают-работают.

А смысл. Для такой работы обычно табличные процессоры используют.
PM MAIL   Вверх
Данкинг
Дата 9.6.2012, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Цитата(Reese @  9.6.2012,  23:01 Найти цитируемый пост)
свойство BufferMode у объектов _screen и form

А в меню фокса нет такой опции?
Цитата(Reese @  9.6.2012,  23:01 Найти цитируемый пост)
15 полей. объем таблицы - чуть меньше 1 Гб

Ну, значит, поля по размеру небольшие.
Цитата(Reese @  9.6.2012,  23:01 Найти цитируемый пост)
А смысл. Для такой работы обычно табличные процессоры используют. 

Какие ещё процессоры: открыл таблицу в фоксе - и вперёд.

Кстати, попробовал связку и UPDATE - связка в разы быстрее работает, как я и говорил.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Reese
Дата 10.6.2012, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1



Цитата

Ну, значит, поля по размеру небольшие.

В в среднем C(50)

Цитата

А в меню фокса нет такой опции?

Нет. А зачем она там ?

Цитата

Какие ещё процессоры


Excel, Calc и т.д.

Цитата

стати, попробовал связку и UPDATE - связка в разы быстрее работает, как я и говорил.

А поля, по которым идет поиск,  проиндексировали ? Ну не может оно в разы быть медленнее

Это сообщение отредактировал(а) Reese - 10.6.2012, 11:08
PM MAIL   Вверх
Данкинг
Дата 10.6.2012, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Цитата(Reese @  10.6.2012,  12:06 Найти цитируемый пост)
Excel, Calc и т.д.

Только просматривать и редактировать таблицу в фоксе куда удобнее, чем в Excel, который к тому же только 65 с чем-то там тысяч записей поддерживает. В Calc с версии ОО 3.3 поддерживается и больше, но при этом файл на 300000 записей открывается час, т.е. скорость у ОО оставляет желать лучшего.
Цитата(Reese @  10.6.2012,  12:06 Найти цитируемый пост)
А поля, по которым идет поиск,  проиндексировали ?

А, забыл. smile Прога на работе, тогда после выходных гляну.
Цитата(Reese @  10.6.2012,  12:06 Найти цитируемый пост)
В в среднем C(50)

Ну вот, смотря что хранить в такой таблице.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Данкинг
Дата 17.6.2012, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Цитата(Данкинг @  10.6.2012,  12:28 Найти цитируемый пост)
Прога на работе, тогда после выходных гляну.

Глянул, кстати. UPDATE с индексированным полем аналогично долго работает.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Reese
Дата 18.6.2012, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1



Цитата

 UPDATE с индексированным полем аналогично долго работает. 

Ну быть такого не может.
Можете скинуть код с описанием полей и индексов? 

PM MAIL   Вверх
Данкинг
Дата 18.6.2012, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Ну, суть в том, что вторая таблица индексируется по полю (пусть будет INDEXPOLE), далее идёт цикл по первой таблице и запрос типа такого:
Код

index table2 on left(INDEXPOLE,100) to xxx
update table2 set table2.Pole1=table1.Pole1, table2.Pole2=table1.Pole2, table2.Pole3=table1.Pole3 where allt(table1.INDEXPOLE)==allt(table2.INDEXPOLE)



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Reese
Дата 18.6.2012, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1



так я же писал что update по таблице действительно медленный
SCAN + update - тогда быстро
И еще, какой уровень оптимизации? Что-то я не уверен что в вашем случае UPDATE  будет использовать индекс.

Это сообщение отредактировал(а) Reese - 18.6.2012, 11:39
PM MAIL   Вверх
Данкинг
Дата 18.6.2012, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



А при чём здесь scan ? Какая разница, откуда я получаю значение?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Reese
Дата 18.6.2012, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 6.6.2009

Репутация: 1
Всего: 1



При том что join на update-е у фокса медленный. Поэтому Join эмулируем через select ... into cursor и scan c update-ом.
Увы, но это то ли просто особенность фоксового SQL-движка, то ли, вообще, баг.

Это сообщение отредактировал(а) Reese - 18.6.2012, 15:06
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Foxpro/Clipper/Dbase"
MoLeX

Запрещается!

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему.

Задавайте вопросы правильно - как спросите, так вам и ответят.

Разрешено!

Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил.

Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы.

P.S. Размещение рекламы будет строго наказываться!



Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема »


 




[ Время генерации скрипта: 0.1587 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.