Здравствуйте, IB, Вы писали:
КДВ>> насчет "нормальных" — Вас как, не смущает наличие версионности в MS SQL 2005 ? IB>А почему меня это должно смущать?
не знаю. почему-то кажется.
КДВ>> А то странно, что Вы так реагируете на ДРУГУЮ функциональность ДРУГИХ серверов. IB>Я реагирую на то, что особенность реализации одних серверов пытаются выставить как недостатки других.
позвольте. это наоборот, реализацию IB/FB пытаются представить как недостаток.
Здравствуйте, IB, Вы писали:
AC>>А может ты сперва ознакомишься с тем, что там и как в IB/FB, прежде тем строить эфемерные теории?.. IB>Можно ссылочку на документацию FB, где сказано, что он выполняет мини откаты при RC, и как он это делает?
В IB/FB нет ни миниоткатов ни мининакатов (мы не будем спускаться в недра сервера и говорить
о savepoint). Есть версионность. RC в ней можно сравнить хотя бы с RC реализуемом в версионности в MS SQL 2005,
к Ораклу переходить необязательно.
насчет "с миниоткатами строже". Речь, как я понимаю, об атомарности оператора
select? Атомарность эта в версионнике может быть достигнута переводом
параметров транзакции с RC до SNAPSHOT на время вычитки записей запроса.
Зачем тут делать "микрооткаты", как и вообще "микрооткаты" непонятно чего,
если Оракл "тоже версионник — неясно. Может объясните?
например я тут ни про какие "миниоткаты" или про особенную специфику Оракла в RC не увидел.
Здравствуйте, Кузьменко Д.В., Вы писали:
КДВ>интересно. когда на ibase.ru посылают — отмаз типа "лень смотреть или лень прямую ссылку искать". А в MSDN абстрактно посылать — нормально?
И этот дом еще борется за звание «Дома высокой культуры быта» (с)?
Здравствуйте, Sinclair, Вы писали:
A>>Вот кстати еще одна в которой неудобно использовать одну транзакцию: A>>Есть таблица в которой присутствуют записи должные быть распечатанными один единственный раз на некоторых принтерах (не будем вдаваться в каких, не суть важно). Т.е. в данном конкретном случае мы имеем с одной стороны БД целостность которой должны быть поддержана в любых условиях. С другой стороны повторная печать на принтере не допускается. Т.е. из этой таблицы данные должны удаляться (помечаться на удаление) после печати. Если я стартую все в одной транзакции, то мне туда же надо и запихивать удаление (пометку на удаление), и коммитить после каждой печати запрос на выборку. Ну и как данную задачу решить с одной транзакцией? S>Ниче не понял. А в чем, собственно, проблема? Я четко вижу ровно одну транзакцию — выгрести и убить. Причем именно так: если выгребание по какой-то причине не удалось, то убивать нельзя, т.к. данные так и не доехали до принтера.
Ты наверное не догнал, но записи надо печатать по одной или более, на одном или более принтерах, причем сбойнуть может любой принтер в любой момент, а остальные должны продолжать печатать. Т.е. если я работаю в одной транзакции то должен после каждой делать коммит вместо того чтобы в данном случае просто сделать откат обновляющей транзакции? Я правильно понимаю?
A>>Легко скажете? А не легче ли стартовать snapshot транзакцию и не париться? Зачем лишний геморой? Я наверное не понимаю. S>А чем вам поможет snapshot транзакция? Покажите мне, что делается в первой транзакции, и что во второй.
1. select bla-bla-bla from table
2. delete from table where id=:id
С таблицей однозначно делаются только операции вставки и удаления. Причем некоторые записи должны быть напечатаны в одном пакете, и если произошла хоть одна ошибка при печати то откатить весь пакет и соответственно пропечатать отмену печати при необходимости. Первая читающая транзакция, можно сделать так что нагрузка сервера будем минимальна изначально (кстати, про такое Вы наверное не знаете?). Вторая чисто под удаления запускается. В чем порочен данный метод? Или мне надо делать два коннекта? Если нет, то лучше нагружать сервер откатами транзакций и иже с ним?
P.S. Можно конечно запускать запросы по одному, но по мне это достаточно геморный вариант. Хотя Вам виднее. Я был бы раз если мне предложат более простой способ для решения этой задачи.
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Иван, а через два подключения значит этим заниматься низя...?
можно, и я говорил об этом, только почему-то никто не занимается.
КД>А, даже в голову не приходит?
Не, обычно не приходит.
КД>И ты значит отвечаешь за всех программистов "нормальных" серверов? Ты их всех знаешь по-именно?
Программисты нормальных серверов не отстаивают священное право, н апрострел собственных ног с таким упорством.
КД>Иван, это тупик рассуждения...
Я рад, что ты это понимаешь..
Здравствуйте, SmlMouse, Вы писали:
SM>Я их очень внимательно читаю
Не заметно.. (
SM>Аргуметов, показывающих, что подход one-connection:many-transactions хуже one-connection:one-transaction я не вижу.
Я не вижу чем это хорошо.
SM>Ты правда считаешь, что такая ситуация в рамках моего примера не возможна в модели one-connection:one-transaction?
Все-таки не внимательно читаешь, или не читаешь вообще.
SM> Реализовывать логику сервера на клиенте задача лишняя и неблагодарная.
О чем и речь.
Здравствуйте, Кузьменко Д.В., Вы писали:
КДВ>не знаю. почему-то кажется.
Может быть еще что-нибудь кажется?
КДВ>позвольте. это наоборот, реализацию IB/FB пытаются представить как недостаток.
Посмотри с чего все началось.
Здравствуйте, Кузьменко Д.В., Вы писали:
КДВ>интересно. когда на ibase.ru посылают — отмаз типа "лень смотреть или лень прямую ссылку искать". А в MSDN КДВ>абстрактно посылать — нормально?
В MSDN известна конкретная статья. Ровно тогоже я жду и от вас. К тому же ibase.ru, прямо скажем, не microsoft.com
Здравствуйте, Alex.Che, Вы писали:
AC>>>Иван, IB/FB никогда ничего "втихаря" не делает. IB>>Кто-то говорил, что FB что-то делает в тихаря? AC>И снова передёргиваем. Браво.
Мужик — ты о чем?
AC>Не-а, не чувствую.
Ну тогда и говориь не о чем.
AC>У Oracle строже по сравнению с чем?
По сравнению с реализацией в FB.
AC>А зайти на сайт не пробовал?
Так где конкретная ссылка?
AC>Попрошу не возводить на меня напраслину!
По делу тобой не было сказано ничего. При попытке коснуться технических вопросов — несешь полную чушь.
КДВ>В IB/FB нет ни миниоткатов ни мининакатов (мы не будем спускаться в недра сервера и говорить КДВ>о savepoint).
О чем я собственно и говорил. В FB миниоткатов нет. Хотя кое-кто пытался весьма неуклюже обвинить в обратном...
КДВ> RC в ней можно сравнить хотя бы с RC реализуемом в версионности в MS SQL 2005, КДВ>к Ораклу переходить необязательно.
К ораклу перешел не я. Было утверждение, что в FB RC накой же как в оракле. Так вот это не так, RC в оракле отличается от FB-шного.
Будешь спорить?
КДВ>но Вам бы я посоветовал всю серию по версионности почитать, для начала
Я бе тебе советовал не спорить со мной про версионность.
КДВ> Речь, как я понимаю, об атомарности оператора select?
Речь о различных реализациях уровня RC.
КДВ>Зачем тут делать "микрооткаты", как и вообще "микрооткаты" непонятно чего, если Оракл "тоже версионник — неясно.
Если не ясно, тогда не надо спорить.
Здравствуйте, IB, Вы писали:
SM>>Я их очень внимательно читаю IB>Не заметно.. (
Наша тема хороша, начинай сначала.
Хорошо. Ответь на простой вопрос.
В чем порок такого кода (поток один, приведён пвсевдо код, дабы не не захламлять ветку):
tr1->start; statement stm_tr1(tr1);
tr2->start; statement stm_tr2(tr2);
stm_tr1->Fetch; // SELECT field1, field2 from table1; // returned 1, test
stm_tr2->update; // update table1 set field2=updated where field1 = 1
tr2->commit;
stm_tr1->Fetch; // SELECT field1, field2 from table1; // returned 1, updated
tr1->commit;
SM>>Аргуметов, показывающих, что подход one-connection:many-transactions хуже one-connection:one-transaction я не вижу. IB>Я не вижу чем это хорошо.
Этот агрумент говорит только о зрении смотрящего.
О недостатках/достоинствах самих подхов one-connection:many-transactions/one-connection:one-transaction этот аргумент не говорит ничего.
Изначально ты высказывался более определённо:
КДВ> Есть коннект. в его рамках можно одновременно стартовать несколько транзакций.
Вот это уже не логично.
Что изменилось с тех времён?
Да, логика — это такая научная дисциплина.
И раз уж ты говоришь, что утверждение не логично, то принято приводить доказательство.
Ну и заодно, вдруг не знаешь:
Доказательство — это выведение одного знания из другого, истинность которого ранее установлена и проверена человеческой практикой. Оно в конечном счете является сверкой теоретических положении и выводов с реальной действительностью. Использование научных открытий в практической деятельности трудно представить без подобной сверки.
Во-первых, под доказательством понимают факты, при помощи которых обосновывается истинность того или иного положения.
Во-вторых, "доказательство" обозначает источники сведений о фактах: летописи, рассказы очевидцев, мемуары, документы и т.п. Например, аттестат зрелости И. -доказательство имеющегося у И. среднего образования.
В-третьих, "доказательство" — это процесс мышления, в котором обосновывается истина какого-либо суждения (положения). В логике термин "доказательство" употребляется именно в этом значении.
SM>>Ты правда считаешь, что такая ситуация в рамках моего примера не возможна в модели one-connection:one-transaction? IB>Все-таки не внимательно читаешь, или не читаешь вообще.
Это нужно понимать как "ситауция возможна в обоих случаях" или "ситуация не возможна в one-connection:one-transaction" ?
--
WBR и ничего личного
... << RSDN@Home 1.2.0 alpha rev. 743>>
Здравствуйте, IB, Вы писали:
IB>Здравствуйте, Кузьменко Д.В., Вы писали:
IB>О чем я собственно и говорил. В FB миниоткатов нет. Хотя кое-кто пытался весьма неуклюже обвинить в обратном...
что такое "миниоткаты" — это новый термин? или это внутренний savepoint, который ЕСТЬ в IB/FB?
КДВ>> RC в ней можно сравнить хотя бы с RC реализуемом в версионности в MS SQL 2005, КДВ>>к Ораклу переходить необязательно. IB>К ораклу перешел не я. Было утверждение, что в FB RC накой же как в оракле. Так вот это не так, RC в оракле отличается от FB-шного. IB>Будешь спорить?
не буду. я хочу аргументации, со ссылкой.
КДВ>>но Вам бы я посоветовал всю серию по версионности почитать, для начала IB>Я бе тебе советовал не спорить со мной про версионность.
да ну? или версионность в MS SQL уже 23 года? Или Вы (ты) работаете(шь) с
версионным сервером лет 12 ?
КДВ>> Речь, как я понимаю, об атомарности оператора select? IB>Речь о различных реализациях уровня RC.
В ЧЕМ ОНА ОТЛИЧАЕТСЯ. Прошу сообщить.
КДВ>>Зачем тут делать "микрооткаты", как и вообще "микрооткаты" непонятно чего, если Оракл "тоже версионник — неясно. IB>Если не ясно, тогда не надо спорить.
то есть, я умом не вышел? Позвольте спросить, что это тогда за уровень беседы —
и "сервер у вас неправильный, и про микрооткаты ни в зуб ногой, и ссылок я не дам, и вообще, мне лениво".
Так? Напрягитесь, пожалуйста, хоть один вменяемый аргумент дать. Хотя бы про микрооткаты
или несоответствие RC. Трындеть любой новичок может. Я Вам уже кучу ссылок дал, а Вы все как-то
по нулям.
Здравствуйте, IB, Вы писали:
IB>Здравствуйте, Кузьменко Д.В., Вы писали:
КДВ>>интересно. когда на ibase.ru посылают — отмаз типа "лень смотреть или лень прямую ссылку искать". А в MSDN КДВ>>абстрактно посылать — нормально? IB>В MSDN известна конкретная статья.
мне пока не известна. и ссылок на msdn по теме разговора я пока ни одной не видел.
IB>Ровно тогоже я жду и от вас. К тому же ibase.ru, прямо скажем, не microsoft.com
допустим, не микрософт. однако, пока что Borland не уличил меня в некорректности
информации на ibase.ru. Информация по версионности на ibase.ru есть и ОТ АВТОРОВ IB.
И от авторов FB.
Здравствуйте, IB, Вы писали:
IB>Не заметно.. ( IB>Я не вижу чем это хорошо. IB>Все-таки не внимательно читаешь, или не читаешь вообще. IB>О чем и речь.
Извините, но от Вас кроме флуда ничего больше нет.
Ради интереса пересмотрите процентов 70 ваших-же сообщений.
Вы, собственно, кто? Здешний модератор? Тогда что происходит?
Здравствуйте, IB, Вы писали:
IB>Здравствуйте, Tonal-, Вы писали:
T>>Идеально было бы ещё запрстить сюда цтатау, однозначно подтверждающую твою правоту. IB>Тебе не кажется, что было бы странно, если бы в стандарте было упомянуто, что "Tonal- ошибается в своей трактовке ACID".
Естественно в стандарте такого не указано, как не указано и то, что "IB вещяет истину в последней инстанции — верте ему!"
T>>В таком случае, привиди ссылки на стандарты и документацию, которые подтверждают твоё утверждение.
T>>Устроют ссылки на стандарт SQL 2003 или на онлайн документацию по любому серверу. С точностью до абзаца.
Если непонятно, какие именно твои утверждения я просил обосновать, то эти (здесь
T>>Мне всегда казалось, что ACID — это гарантии именно сервера относительно данных.
T>>И пока клиент не лезет в "нутро" сервера, а пользуется педоставленными ему интерфейсами, он может расчитывать на их выполнение.
T>>А если пользуясь только стандартными средствами клиент может в лёгкую нарушить эти гарантии сервера, то стало быть и нет никаких гарантий.
IB>Ты ошибался
Мне кажется, что если человек требует привести примые ссылки сыоих от своих оппонентов (см например здесь
), а сам, в ответ на подобные просьбы не может привести ни одной ссылки, то он, мягко говоря некомпетентен в обсуждаемом вопросе.
T>>По твоим словам выходит, что любая программа, которая хоть как-то использует данные вне транзакции нарушает эти самые мифические гарантии. IB>Во-первых, я ни слова не говорил про гарантии вообще и гарантии сервера в частности, а во-вторых, из моих слов совсем не следует что любое использование данных нарушает ACID.
Именно следует, и именно из твоих слов.
Но в принципе, я могу заблуждаться — по приведённым ссылкам я думаю это будет ясно видно.
Здравствуйте, SmlMouse, Вы писали:
SM>Наша тема хороша, начинай сначала. SM>Хорошо. Ответь на простой вопрос. SM>В чем порок такого кода (поток один, приведён пвсевдо код, дабы не не захламлять ветку):
В данном коде tr1 видит данные которые появились в базе после того как началась tr1.
Те нарушена изоляция.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
SM>>Хорошо. Ответь на простой вопрос. SM>>В чем порок такого кода (поток один, приведён пвсевдо код, дабы не не захламлять ветку): WH>В данном коде tr1 видит данные которые появились в базе после того как началась tr1. WH>Те нарушена изоляция.
Если я добавлю, что tr1 стартанута в режиме RC, вы останетесь на своем мнении?
--
WBR и ничего личного
... << RSDN@Home 1.2.0 alpha rev. 743>>
Здравствуйте, SmlMouse, Вы писали:
SM> Если я добавлю, что tr1 стартанута в режиме RC, вы останетесь на своем мнении?
Да.
Более того я предвидел то что ты начнешь говорить про уровни изоляции.
Так вот что я тебе скажу: Уровень изоляции есть только первый (сериализованный) и он же последний.
Все остальное это соглашения с конкретной реализацией базы данных о том что ты не должен делать для того чтобы транзакция осталась сериализованной.
Если ты сознательно нарушаешь соглашения, то ты сам себе злобный Буратино.
И уж темболие не стоит говорить что это правильный путь.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Ну и? Видим только упоминания о том что в рамках одной транзакции может существовать несколько активных множеств.
А нам бы хотелось получить прямую ссылку на документ, подтверждающий что теперь в 2005 может существовать несколько активных транзакций. И MARS тому виной
Я не нашел
Уж чего проще для людей, которые на ты с MSQL 2005 — затестите самостоятельно. Поверим на слово!
Уже четвертый день одно только бе и ме.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --