|
|
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
вопрос такой, таблицы лежат на серваке, с ними работают (разумеется) юзеры, мне нужно паковать таблицы, но открывать экслюзив не дает, говорит нельзя (другой юзер работает) так когда же их паковать??? в рабочее время - нельзя, в нерабочее это делать некому... может кто решал подобную проблему??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 10:46 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
a без пака никак??? по 5 лет не паковал размер ок 500 М таблиц достигал и ниче по сетке 10 мбит работал софт и сечас работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 10:55 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
фоксвопрос такой, таблицы лежат на серваке, с ними работают (разумеется) юзеры, мне нужно паковать таблицы, но открывать экслюзив не дает, говорит нельзя (другой юзер работает) так когда же их паковать??? в рабочее время - нельзя, в нерабочее это делать некому... может кто решал подобную проблему??? Я как понимаю у тебя файл-серверное приложение. Один из вариантов: Делаешь отдельное приложение (exe), которое открывает таблицы Exclusive и производит работы (переидексацию и PACK-овку таблиц при необходимости). Кидаешь exe-к на сервер. И назначаешь на сервере задание во сколько его запустить в нерабочее время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 10:56 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
Владимир СА фоксвопрос такой, таблицы лежат на серваке, с ними работают (разумеется) юзеры, мне нужно паковать таблицы, но открывать экслюзив не дает, говорит нельзя (другой юзер работает) так когда же их паковать??? в рабочее время - нельзя, в нерабочее это делать некому... может кто решал подобную проблему??? Я как понимаю у тебя файл-серверное приложение. Один из вариантов: Делаешь отдельное приложение (exe), которое открывает таблицы Exclusive и производит работы (переидексацию и PACK-овку таблиц при необходимости). Кидаешь exe-к на сервер. И назначаешь на сервере задание во сколько его запустить в нерабочее время. мда, мудрено как.... чтобы попроще... но похоже фокс этого не умеет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 11:24 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
Вообще-то, ежедневно паковать нет никакой необходимости. Если в таблице есть немного записей, помеченных как удаленные, то на производительности это никак не скажется. Т.е., паковать, конечно, нужно, но относительно редко - раз в месяц, пол-года, год. В зависимости от интенсивности удаления и модификации мемо-полей. Это значит, что упаковка таблиц - это некое "обслуживающее" мероприятие, производящееся относительно редко в комплексе с другими административными действиями (проверка целостности базы данных, переиндексация и т.п.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 11:37 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
а как проще???? хочешь паковать когда таблица открыта для нескольких юзеров??? а что пак вообще делат??? так вот пак создает новый файл и переименовывает затем а стоит ли вообще паковать??? ели пали залез в Sql аналайзер жутя берет - id не попорядку и вообще блин некрасиво наверное начну на сервере паковать и сортировать а то как то некрасивенько блин, шучу я ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 11:38 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
Мы эту проблему решили таким образом. В специальной таблице есть поле ДАТА. При входе в задачу в самом начале программа проверяет эту дату и сравнивает с текущей. Если это первый вход за день, открывает таблицы экслюзивно, упаковываем и меняем ДАТА на текущую. Затем открываем заново для всех. Для пользователя, стартующего следующим - а вероятность того, что все запустят программу с точностью до секунды практически равна нулю - дата уже будет сегодняшней. Работает уже 5 лет в двух системах - на 8 и 12 рабочих местах. Пока замечаний не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 12:54 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
Ledi_DiМы эту проблему решили таким образом. В специальной таблице есть поле ДАТА. При входе в задачу в самом начале программа проверяет эту дату и сравнивает с текущей. Если это первый вход за день, открывает таблицы экслюзивно, упаковываем и меняем ДАТА на текущую. Затем открываем заново для всех. Для пользователя, стартующего следующим - а вероятность того, что все запустят программу с точностью до секунды практически равна нулю - дата уже будет сегодняшней. Работает уже 5 лет в двух системах - на 8 и 12 рабочих местах. Пока замечаний не было. а это уже идея... спасибо Ledi есть еще соображения, например в Clarionе, если кто помнит, записи вообще никогда не паковались, там была возможность настройки таким образом, что при создании новой записи, бралась старая помеченная на удаление и востанавливалась... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 14:54 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
энта идея и в фоксе влет делается order1 for !dele() order2 for dele() use табла in alia табла orde order1 && это основная use табла in alia табла_уд orde order2 again && тут удаленные для аппенда в осн. таблу пишем sele табла_уд if !bof() and !eof() * нужно почистить поля написши процу или ручками local lnRecn recall sele табла loca reco lnRecn else sele табла appe blan endif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 15:10 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
да делается, но там было уже сделано... сделано самой базой. можно наверно хранимую процедурку сбацать, и пусть себе отслеживает разные insertы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 15:22 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
моно все что угодно даже того чего и низя а не моно то чего не моно т.е. никада никада немоно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 15:27 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
это и хорошо, что само не делается у тебя не было таких приколов, когда приходишь а тетеньки говорят "Мы хорошие, мы ниче такого не делали, а вот счетик такой-то кудато ть исчез" а ты им "А вот юзерок такой-то кривыми ручками тады-то и тогда-то вот эту запись пометил" аля, опа и волки сыты и овцам по рукам я сейчас на стороне поддерживаю софт, написанный блин чудаками на букву ... там вот как раз пакуется и запается тады кады хочется так я вот ладу иногда дать не могу куда накладные делись и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 15:43 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
Паковать таблицы при входе в программу - это не очень хорошая идея. Имеет смысл, если размер всей базы относительно невелик, или есть некий товарищь, запускающий прогу значительно раньше всех остальных. В противном случае, "добрые" слова от пользователей, что "программа плохая" (потому что не запускается) - обеспечены. Да и тому первому пользователю тоже не в радость сидеть и ждать, пока программа упакуется. Восстанавливать записи, ранее помеченные как удаленные, в принципе можно. Но это не такое простое дело, как пытается показать alex11100 . Разрешение конфликтов совместного доступа при такой технологии достаточно сложная задача. Т.е. как обеспечить, чтобы 2 пользователя одновременно не использовали как новую одну и ту же запись? PS: Только код писать не надо. Все равно его не будут использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 15:52 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
мы уже кажется мес. 2-3 назад обсуждали проблему принудит. блокирования для локальных данных повторяться не буду а уж репроцесс или лок вставить не проблема и добавить один иф тоже думаю я же идею показал, а Вы блин, обидно а ладно, шучу я, шучу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 16:11 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
ВладимирМПаковать таблицы при входе в программу - это не очень хорошая идея. Имеет смысл, если размер всей базы относительно невелик, или есть некий товарищь, запускающий прогу значительно раньше всех остальных. В противном случае, "добрые" слова от пользователей, что "программа плохая" (потому что не запускается) - обеспечены. Да и тому первому пользователю тоже не в радость сидеть и ждать, пока программа упакуется. Долго собиралась с духом, чтобы ответить такому корифею, как Вы, Владимир. (без шуток) База, действительно, не самая большая. И время задержки для первого входящего пользователя практически незаметно, особенно теперь, когда техника стала мощнее. Специально не замеряла, уверена, что не более минуты. (Если интересно, завтра засеку и уточню размер базы). Не будем забывать, что любая палка имеет два конца - если отказаться от предложенного варианта, придется назначать администратора, давать ему дополнительные права, заставлять выполнять действия по упаковке до или после рабочего времени или в обеденный перерыв. А простые юзеры ох как следят за своим рабочим временем ! Короче, из двух зол мы выбрали меньшее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 16:49 |
|
||
|
опять PACK
|
|||
|---|---|---|---|
|
#18+
ВладимирМПаковать таблицы при входе в программу - это не очень хорошая идея. Имеет смысл, если размер всей базы относительно невелик, или есть некий товарищь, запускающий прогу значительно раньше всех остальных. В противном случае, "добрые" слова от пользователей, что "программа плохая" (потому что не запускается) - обеспечены. Да и тому первому пользователю тоже не в радость сидеть и ждать, пока программа упакуется. Я это решил так: составил файл который запускается при включении сервера. Он создает архив базы (ZIP) и запускает нашу программу в с параметром указывающем ей что необходимо выполнить проверку базы на целостность, переиндексацию, PACK-овку таблиц ну и т.д. Когда это выполнено открывается доступ пользователям к расшареным дискам сервера и всем отправляется сообщение о возможности приступать к работе. Размер базы на данный момент 788670 Кбайт это только DBF. Вся операция занимает минут 5. Претензий к программе от юзверов нет так как включает сервер тот кто первый пришел (для них это сервер так долго грузится), пока остальные подтянутся и соберутся работать уже все готово ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 19:10 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33438408&tid=1592776]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 456ms |

| 0 / 0 |
