Минимальное кол-во версий. Как правильно.

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
regvoc
Сообщения: 13
Зарегистрирован: 24 дек 2006, 14:08

Минимальное кол-во версий. Как правильно.

Сообщение regvoc » 11 янв 2007, 11:34

1. Не планируется ли в будущих версиях, опционально ее отключить вообще? Хотя думаю что нет :o , но насколько я понимаю это основная беда firebird, ну и одновременно непонятная радость почитателей,
Что только ради меньшего кол-ва блокировок?

Или ну не знаю например ввести на некоторые поля в настройке базы что-бы не было многоверсионности. и скорость была б нормальной и проблем меньше. Что то вроде charset параметра, было бы здорово.
или хотябы логи транзакции писать не в базу.



А так delete from нормально не сделать, и голову себе морочить не хочется, нужно писать программы, а не мучится, как же сделать так что-бы не наплодилось и не висло все в итоге, получается просто большая головная боль с построением программы при использовании firebird

И главное Вот пишешь программу, а беда в том что не уверен на все 100% все ли примхи firebird учтены.



2. Как же идеологически правильно работать с Firebird что-бы было минимальное кол-во версий, соответственно не росла база и не было тормозов. Вот что бы после работы с базой никаких версий не было, а произошла сборка мусора сразуже.

Пусть уже у пользователя подтормаживает каждый раз, чем один раз но на долго.


Вот что-то там delete или update сделали, а потом делаем select и не всегда то мусор убирается.

Как сделать так что-бы при закрытии программы всегда не было не одной мусорной записи.

Вот как пример пока тупиковой ситуации.
Есть две таблицы связанные ключем, главная и подчиненная. (cascade)

Удаляем запись из главной, автоматически удаляются из подчиненной записи, гадкий мусор появляется. естественно никто теперь select для подчиненной таблицы не сделает и по сути мусор почти навсегда там.
(до sweep, restore,backup)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 янв 2007, 11:59

читайте статьи по версионности и сборке мусора на сайте.
никаких подтормаживаний "надолго" не бывает, если только не запускается автоматический sweep. про это есть статья.
версионность никто убирать не будет. Не надо - переходите на блокировочный сервер.
Вот как пример пока тупиковой ситуации.
Есть две таблицы связанные ключем, главная и подчиненная. (cascade)

Удаляем запись из главной, автоматически удаляются из подчиненной записи, гадкий мусор появляется. естественно никто теперь select для подчиненной таблицы не сделает и по сути мусор почти навсегда там.
(до sweep, restore,backup)
не вижу. ну мусор остался. И что?
www.ibase.ru/devinfo/garbage.htm
www.ibase.ru/devinfo/sweep.htm

p.s. еще немного, и за такие вопросы я начну репрессии. версионность и сборка мусора вполне подробно и доходчиво изложена в нескольких статьях на сайте, которые сгруппированы в один блок. Каждая такая статья имеет ссылку друг на друга. И в ряде статей написано, как правильно управлять транзакциями, чтобы минимизировать накопление мусора (например в www.ibase.ru/devinfo/ibx.htm).
То есть, на сайте есть вся информация, чтобы ее можно было обдумать, и задавать вопросы не начинающего уровня, а по существу.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 11 янв 2007, 13:01

Нужен сервер без версионности - бери MSDE и не надо валить все с больной головы на здоровую.
Кстати, аффтар, ты же еще в прошлом году собирался переходить на SQLite. В чем дело? Забыл сникерснуть?

regvoc
Сообщения: 13
Зарегистрирован: 24 дек 2006, 14:08

Сообщение regvoc » 12 янв 2007, 14:54

Нужен сервер без версионности - бери MSDE и не надо валить все с больной головы на здоровую.
Кстати, аффтар, ты же еще в прошлом году собирался переходить на SQLite. В чем дело? Забыл сникерснуть?
MSDE Да не подходит слишком большой дистирибутив.
На насчет SQLite так уже давно и использую, скажу супер база ну например вставка >100,000 записей в секунду у FireBird <10,000 а на вставку не должан бы влиять многоверсионности ну не как :)
Select не намного быстрее по скорости.

Единственный минус у SQLite нет хорошего сетевого режима, хороших компонент, нужно почти все в ручную писать, только из-за этого и пал выбор на firebird так как пользователи начинают наглеть и намекать на полную его поддержку сетевого режима.

Я бы рад конечно забыть про FB как страшный сон, хотя много интересного для себя узнал :) ,но цель просто выжать максимально из него все. Не верю что все настолько плохо при применение его в моих задачах.

Но так как куплены компоненты FIB, книга по FB , много прочитано про него.
Потрачено больше месяца на все это дело работы.

Или я его - или он меня :)


Нужен сервер без версионности - мне все равно.

Хотя конечно хочу многого :)
Быстрая, стабильная, сетевая и бесплатная база малого размера.

И все больше убеждаюсь что слово Быстрая и FB это противоположные вещи.

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Сообщение SAMZ » 12 янв 2007, 15:19

regvoc писал(а):
Нужен сервер без версионности - бери MSDE и не надо валить все с больной головы на здоровую.
Кстати, аффтар, ты же еще в прошлом году собирался переходить на SQLite. В чем дело? Забыл сникерснуть?
Я бы рад конечно забыть про FB как страшный сон, хотя много интересного для себя узнал :) ,но цель просто выжать максимально из него все. Не верю что все настолько плохо при применение его в моих задачах.
Если для тебя FB - страшный сон, и все в нем плохо, то и работай на чем нибудь другом, не обижай армию тех, кто все это уважает и использует

regvoc
Сообщения: 13
Зарегистрирован: 24 дек 2006, 14:08

Сообщение regvoc » 12 янв 2007, 15:31

Я не в коем случаи нехочу никого обидеть, а наоборот хочу в ступить в армию почитателей, ели все будет ок и пожертвования на разработку дам не вопрос.

P.S
И не хочу работать с другой базой, а пытаюсь как заставить работа эту.
а главное быть уверенным что все в процессе работы будет работать СТАБИЛЬНО и БЫСТРО всегда - а не надеятся на слова и веру "будет работать". Именно поэтому и задавал вопросы, как сделать так чтобы при закрытии программы версий НИКОГДА НЕБЫЛО., пусть это и гем. для меня так как нужно будет делать дополнительные телодвижения в написании кода но зато будет УВЕРЕННОСТЬ В БЫСТРОЙ И СТАБИЛЬНОЙ РАБОТЕ.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 12 янв 2007, 15:55

regvoc писал(а):как сделать так чтобы при закрытии программы версий НИКОГДА НЕБЫЛО.
Никогда и ничего в ней не апдейтить и не удалять.

PS: Это не шутка.

regvoc
Сообщения: 13
Зарегистрирован: 24 дек 2006, 14:08

Сообщение regvoc » 12 янв 2007, 16:34

Никогда и ничего в ней не апдейтить и не удалять.
Это я догадался, Спасибо Верю.

А если вдруг всетаки понадобится update и delete, логика сложной может быть :D

нет ли всетаки возможности заставить удалить FB версии из базы,
до закрытия программы, что бы при новом старте их небыло уже.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 12 янв 2007, 17:05

Перед тем, как бороться с "проблемой", необходимо выяснить - а с тем ли ты борешься...

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 15 янв 2007, 11:14

Вот что-то там delete или update сделали, а потом делаем select и не всегда то мусор убирается.
Дочитай таки доку до "длинных" транзвакций и как оные влияют на сборку мусора.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 15 янв 2007, 11:33

его тему уже обсуждали здесь в трех топиках и на sql.ru (где было про FB2 GCPolicy, я тоже отвечал)

http://www.sql.ru/forum/actualthread.as ... l=gcpolicy
(страницы 3 и 4)
Мне кажется, что обсуждать здесь больше нечего.

Ответить