Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
авторДело в том что перечисленные операции (alter table, alter index, ...) относятся к DDL и никогда в транзакции не входили. Если речь идет именно о транзакции, то в этой иноформации нет смысла, зачем говорить что они не входят в транзакцию в снапшот-уровне изоляции если они не входят ни в какую транзакцию ни при каком уровне изоляции. Или в Юконе на каких-то уровнях изоляции можно откатить alter table? да можно у них откатить и ddl и alter, и полно лапухов которые так и делают, а потом чешут репу с вопросом чего это у него теперь однопользовательская система получилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 09:14 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
Именно, DDL могут быть обрамлены транзакцией и соотвественно откачены либо закоммичены. Пример приводить не надо, надеюсь ? Юкона под рукой нет, поэтому я не могу проверить как он поведет при наличии в снапшот транзакции DDL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 15:05 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
c127 Это была шутка. Если присмотритесь, то увидите что это ответ не segun-у, а Silver-у на шутливый пост. Читайте внимательно, а главное ДУМАЙТЕ хотябы изредка. Полезная штука. да-уж, насмешили. Все остальное тоже шутка ? А то до меня юмор по вечерам плохо доходит и кстати, я бы на вашем месте не давал советов, которым вы сами не следуете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 19:55 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
AAronИменно, DDL могут быть обрамлены транзакцией и соотвественно откачены либо закоммичены. Пример приводить не надо, надеюсь ? Как раз надо. Приведите пример alter table drop column с последующим откатом. Это еще одна новая фича Юкона или в МССКЛ2000 такое тоже бывает? StalkerSА то до меня юмор по вечерам плохо доходит Тренируйтесь чаще. А вот и упражнение. Ответьте где это я говорил что углядел лыпы в Юконе (StalkerS: "Очередной спец по Ораклу углядел потрясающие ляпы в Yukon."). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 05:11 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
c127 AAronИменно, DDL могут быть обрамлены транзакцией и соотвественно откачены либо закоммичены. Пример приводить не надо, надеюсь ? Как раз надо. Приведите пример alter table drop column с последующим откатом. Это еще одна новая фича Юкона или в МССКЛ2000 такое тоже бывает? Трудно поверить что MS может то что не может Оракл? :) Да можно и пример. Причем это было уже и в 6.5 (правда там drop column не было) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Но единственно где это(DDL в транзакции) реально было полезно - можно было создавать временные таблицы в триггерах. А т.к. в 2000 появились таблицы-переменные, то пользы от такой возможности немного. Но она есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 10:20 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
Это не единственная область применения. Мне сейчас по ходу нового проекта приходится активно использовать конструкцию "select ... into _new_table_". Правда пока вне транзакций. Правда у меня Юкона все равно нет сейчас, может кто из присутствующих проделает опыт на нем при Snapshot изоляции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 10:30 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
SergSuper Трудно поверить что MS может то что не может Оракл? :) Нет, трудно поверить что это кому-нибудь нужно. Я о такой штуке никогда не слышал и никогда не встречал ситуацию когда такое могло бы хоть как-нибудь помочь. Но я Вам верю, действительно можно. А что происходит если с таблицей работает или собирается работать другой пользователь, это должна быть блокировка на уровне таблицы, еще поле может входить во внешний ключ, его тоже нужно убить, а можно ли откатить эту операцию? В общем куча проблем. SergSuper Да можно и пример. Причем это было уже и в 6.5 (правда там drop column не было) Раз эту штуку можно проделать в МССКЛ-е 6.5 то ее наверняка можно проделать и в сайбейзе АСЕ. Нужно посмотреть. AAronЭто не единственная область применения. Мне сейчас по ходу нового проекта приходится активно использовать конструкцию "select ... into _new_table_". Правда пока вне транзакций. Не убедительно, к тому же ничего особенного, такие штуки сайбейз АСА тоже позволяет делать. [ WITH temporary-views ] SELECT [ ALL | DISTINCT ] [ row-limitation ] select-list [ INTO { hostvar-list | variable-list | table-name } ] .... INTO table-name This clause is used to create a table and fill it with data. If the table name starts # then it is created as a temporary table. Otherwise, the table is created as a permanent base table. Но вроде бы в АСА постоянные таблицы в транзакцию не входят, т.е. откатить нельзя, а вопрос был по транзакциям. Никогда не приходилось использовать эту фичу. По-моему использование ДДЛ в рабочих частях программ есть дурной тон, тут это как-то обсуждалось, работает медленно, плохо контролируется, проблемы с ограничением прав доступа и т.д. Наверное единственное исключение это временные таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2005, 08:50 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
2 c127 DDL в транзакциях в разных СУБД уже обсуждались полгода назад /topic/157503 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2005, 16:07 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
ЛП2 c127 DDL в транзакциях в разных СУБД уже обсуждались полгода назад /topic/157503 Ну да, хотя я имел в виду другой топик, этот я раньше не видел. Кстати там можно прочитать что, как и предполагалось, сайбейз АСЕ тоже умеет откатывать ДДЛ в транзакциях. Версионник ПостгреСКЛ тоже умеет, хотя у него все транзакции версионные по определению. Но вот беда, он не коммерческий, поэтому по замыслу автора статьи его учитывать не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2005, 22:12 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
c127Версионник ПостгреСКЛ тоже умеет, хотя у него все транзакции версионные по определению. Но вот беда, он не коммерческий, поэтому по замыслу автора статьи его учитывать не нужно. Гммм... пардон, не понял? Речь про тот топик на который я дал ссылку, или про какой-то другой? Если про тот, то почему по замыслу автора его не надо учитывать? gardenmanВозник вопрос, в каких базах данных кроме DB2 возможен DDL внутри транзакции? Для Oracle - понятно - всякий DDL вызовет коммит, который приведет к завершению транзакции. Sybase ASE - просто не позволяет DDL внутри транзакции. А как в остальных базах, ASA,MSSQL,POSTGRES и пр? для примера на DB2: и ответ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2005, 22:34 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
Эээ... пардон, не разобрался сразу - какой автор какой штатьи имелся в виду. Вопрос снят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2005, 22:39 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
c127 Я о такой штуке никогда не слышал и никогда не встречал ситуацию когда такое могло бы хоть как-нибудь помочь. вообще говоря, полезная штука в случае если необходимо выполнить реструктуризацию БД, находящейся за несколько сот километров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 09:29 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
AlTk c127 Я о такой штуке никогда не слышал и никогда не встречал ситуацию когда такое могло бы хоть как-нибудь помочь. вообще говоря, полезная штука в случае если необходимо выполнить реструктуризацию БД, находящейся за несколько сот километров. По-прежнему не вижу полезности. С точки зрения администрирования нет разницы находится ли СКЛ сервер в соседней комнате или на другом континенте. Но даже если принять тезис о полезности, то мы тут выяснили ничего нового мелкософт опять не придумал, эту якобы полезную штуку умеют делать даже бесплатные СКЛ сервера и по понятным причинам Сайбейз АСЕ тоже умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 04:09 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
c127 AlTk c127 Я о такой штуке никогда не слышал и никогда не встречал ситуацию когда такое могло бы хоть как-нибудь помочь. вообще говоря, полезная штука в случае если необходимо выполнить реструктуризацию БД, находящейся за несколько сот километров. По-прежнему не вижу полезности. С точки зрения администрирования нет разницы находится ли СКЛ сервер в соседней комнате или на другом континенте. Но даже если принять тезис о полезности, то мы тут выяснили ничего нового мелкософт опять не придумал, эту якобы полезную штуку умеют делать даже бесплатные СКЛ сервера и по понятным причинам Сайбейз АСЕ тоже умеет. А я например не вижу полезности в битмап индексах. Наверное вещь полезная, но я никогда их не использовал (даже слабо представляю что это такое) и на любой Ваш аргумент их полезности тоже отвечу что можно сделать как-то по-другому. Так что не надо уподобляться ярому фанату MS SQL :) Есть возможность - и хорошо, а кто её придумал - дело десятое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 10:02 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
c127 По-прежнему не вижу полезности. С точки зрения администрирования нет разницы находится ли СКЛ сервер в соседней комнате или на другом континенте. Но даже если принять тезис о полезности, то мы тут выяснили ничего нового мелкософт опять не придумал, эту якобы полезную штуку умеют делать даже бесплатные СКЛ сервера и по понятным причинам Сайбейз АСЕ тоже умеет. интересно что с этой фичей будет делать mssql и другие когда дорастут до отслеживания зависимостей. и еще например у нас такой код begin create table a (b int) ; insert into a (10,20) ; end ; во время компиляции таблички нет и ф правильно понимаю, что сиквел такое пропустит ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 10:11 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
сиквел выполнит этот код без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 10:31 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
а вообще сиквел пытается проверяет правильность самих команд (существование полей, таблиц и т.п. ) или только синтаксис ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 10:53 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
Yo!! интересно что с этой фичей будет делать mssql и другие когда дорастут до отслеживания зависимостей. и еще например у нас такой код begin create table a (b int) ; insert into a (10,20) ; end ; во время компиляции таблички нет и ф правильно понимаю, что сиквел такое пропустит ? ну в Постгре придецца со второй строкой прокрутить динамо: EXECUTE 'insert into a (10,20) ;' , т.к. оно в откомпиленном виде oid таблички держит (в связи с чем обычные, не динамо, инструкции каацца нормально съедят ренейм тейбл, не требуя). мне этафича была интересна в вариации: дроп индекс; дроп ключ; -- (если нет связанных ключей/процедур -т.к. пк тоже - оид) инсерт/апдейт много-много записей; криэйт ключ; криэйт индекс; процедурка заполняла некие служебные таблички (в последствии не запущалась - заполнялось триггерами, но могла работать в кач-ве репейра - если наблудил в триггерах). Скорость вставки с дропом увеличивалась раз в 10. Вся транзакция - раз в 5 (перестроение индексов, знаете ли). Я предполагал (и запускал) по возможности при отсутствии иных пользователей. Т.ч. что будет при активных иных юзерах - сказать не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 10:55 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
Ну вообще-то такой код не выполнится: Код: plaintext 1. 2. 3. Но это можно разнести в разные пакеты, но в одной транзакции. А что понимается под отслеживанием зависимостей ? Yo!! а вообще сиквел пытается проверяет правильность самих команд (существование полей, таблиц и т.п. ) или только синтаксис ? Если таблица есть то проверяется её поля, если её нет - ничего не проверяется. В 4 и 6.5 выдавались предупреждения, анализировалось создание временных таблиц в процедуре и проверялись их поля. С 7-й версии с проверками стало похуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 13:07 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
SergSuperНу вообще-то такой код не выполнится: Код: plaintext 1. 2. 3. а на котором стейтменте ? SergSuper Но это можно разнести в разные пакеты, но в одной транзакции. А что понимается под отслеживанием зависимостей ? а чо такое пакеты в сиквеле ? зависимости это когда ты делаешь drop table у тебя помечаются как инвалидные все процедуры/пакеты где упоминалась эта табличка. SergSuper Если таблица есть то проверяется её поля, если её нет - ничего не проверяется. В 4 и 6.5 выдавались предупреждения, анализировалось создание временных таблиц в процедуре и проверялись их поля. С 7-й версии с проверками стало похуже. непонял а что в случае если была таблица с одними полями, а в коде alter ? т.е. проверку нада не по текущей таблицы а по alterу из кода, который еще и может откатится ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 13:50 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
Если исправить ошибки, например так Код: plaintext 1. 2. 3. 4. Проверял на версии SQL Server 2000, а не Юкон. Пакеты - это последовательность команд. В SQL Server нет состояний объекта - валидный/невалидный, как это сделано в Оракле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 14:06 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
2AAron вы нас не поняли :) еще раз: была табличка a (b int); мы запускаем: alter table a (b char(1)) ; insert into a values ('a') ; если сиквел проверит перед исполнением наличие полей у существуещей таблицы то такое уже не должно пройти (поле b int). если проходит значит сиквел вообще не занимается проверками, т.к. угадать пройтет ли алтер нельзя. короче, лет через 6 посмотрим как сиквел будет из этой ситуевины выкручиватся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 14:24 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
c127 По-прежнему не вижу полезности. С точки зрения администрирования нет разницы находится ли СКЛ сервер в соседней комнате или на другом континенте. Но даже если принять тезис о полезности, то мы тут выяснили ничего нового мелкософт опять не придумал, эту якобы полезную штуку умеют делать даже ... речь вроде бы не про новое, а про полезное. про "несколько сот километров" вы слишком буквально поняли. с точки зрения администрирования нет разницы если между этими серверами есть связь. бывают места, где не то, что связи нет, а куда в некоторое время года можно только на вертолете добраться, и скрипт с обновлением БД с оказией пилоту передают. я, думаю, лишняя надежность очень полезной окажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 14:25 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
2 Yo!! Во-первых, насчет того скриптика я был не прав - он выполняется. Во-вторых мне вообще непонятно что значит сиквел занимается проверками наличия полей у существуещей таблицы Вот такой скриптик. Надеюсь не должно смущыть что таблица и процедура временные, на постоянных тоже самое. go - это как раз граница между пакетами Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 1-й шаг выполниться без ошибок и запись вставится 2-й шаг вывалится с ошибкой на инсерте: несоответсвие количества полей при вставке(Insert Error: Column name or number of supplied values does not match table definition), т.к. поле добавится На 3-м шаге мы удаляем таблицу - увы, это делается спокойно и без предупреждений На 4-м шаге процедура запуститься и на алтере вылетит ошибка: такой таблицы нет (Cannot alter table '#t' because this table does not exist) А как это будет в Оракле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 15:13 |
|
||
|
Различия в работе версионных механизмов в Oracle и Yukon
|
|||
|---|---|---|---|
|
#18+
>А как это будет в Оракле? правильно - никак. DDL в процедурах использовать нельзя. можно использовать динамический sql + автономные транзакции (чтоб DDL транзакцию не закомитил), тогда это будет то же самое что у вас, но за это обычно отрывают яйца (динамический sql оракл уже не контролирует). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 15:29 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=33146646&tid=1553835]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 186ms |
| total: | 349ms |

| 0 / 0 |
