-
>Johnmen © (07.10.08 22:59) [58] >С какого они длительные??? Очень даже короткие!
При размере порций в 5000 штук ?
>Я админом не командую. Но если заставят, то просто прикажу прогнать >импорт ещё раз.
Т.е. отресторить базу из бэкапа, предварительно послав на перекур всех юзверей и запустить по новой ? На месте админа я бы такого спесилиста повесил на входе в серверную. За яй... в смысле не за шею ;)
-
О чем спор? Создавать временные таблицы в IB не принято. Хочешь - создавай.
MsGuns © (07.10.08 22:53) [55] >Johnmen © (07.10.08 22:50) [53]
Под "целостностью" я в данном случае (первая цитата) имел в виду не нарушение форинкеев, а нечто другое - когда в БД попадут НЕ ВСЕ записи, а только часть, причем абсолютно неизвестно заранее какая
А я как раз имел в виду форинкеи и юниккеи. И я до сих пор не знаю, как ты собираешься отловить нарушение внешнего ключа при вставке через временную таблицу. У тебя отвалится весь insert into ... select from без всякой информации о том, в какой именно строке это произошло. А при непосредственном импорте у тебя имеется естественная возможность узнать это и что-то предпринять, в зависимости от задачи, например, проигнорировать и пойти дальше.
А насчет "не всех" записей, я уже сказал. Незачем разбивать на пакеты по 5000. Можно и в одной транзакции загнать хоть миллион. Я загонял без проблем. И в случае отката единственная проблема, которая возникнет, это некоторый тормоз по чистке мусора. После одного душного select count(*) из этой таблицы все придет в порядок (кроме размера файла базы, разумеется).
Страх перед откатом больших вставок, я думаю, идет от старых версий IB6.0, в которых были ошибки в связи с чисткой мусора. В Firebird 1.5 Final этих ошибок я не обнаружил.
-
> MsGuns © (07.10.08 22:47) [52] > Я - зловредный и ехидный тип, никого, окромя себя не видящий > и не слышащий. >
Самокритика это очень хорошо. :)
-
> MsGuns © (07.10.08 23:05) [60] > При размере порций в 5000 штук ?
Да. Что тут удивительного? Или транзакция в 1-5 сек. считается неприлично длительной?
> MsGuns © (07.10.08 23:05) [60] >> ...прогнать импорт ещё раз. > Т.е. отресторить базу из бэкапа, предварительно ....
Что за фантазии??? :) Просто импорт ещё раз. Но, естественно, сам импорт написан не недоучившимся студентом. Т.е., по кр.мере, с грамотной обработкой исключений, возникающих при вставке очередной записи. И БД спроектирована не им же. Т.е., по кр.мере, каждая таблица имеет как минимум уникальный индекс.
|