powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Интилигентность оптимайзера, база без хинтов - реальность?
25 сообщений из 260, страница 5 из 11
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536689
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну а как поисходит изоляция транзакций? если меня интересует уровень RR, скажем. я что, так и буду работать с какой-то версией, а в это время кто-то изменит данные или прочитает неверные данные? я пишу mission-critical application, и у меня на первом месте стоит сохранность данных.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536716
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Oracle слишком сложно писать внешние процедуры, которые используют SQL, по сравнению с DB2, я читал доки. из-за дополнителных действий с бд. если дадите ссылку, покажу пальцем, где что именно.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536744
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL/SQL гораздо богаче дибитушного SPL. в DB2 считается нормой SQL programming using host languages.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536811
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про некоторые фичи, скажем Oracle Advansed Queuing, мне просто смешно читать. в сравнении с WebSphere MQ. или это к теме не относится?
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536814
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle нет на AS/400.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536823
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ПК и UNIX это тоска смертая.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536872
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы. Купил книжку по Oracle 8/8i щас дочитаю её и задам вопросы, а то всё вы нас клюете...
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536890
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
riman, не покупай книжки, они только место занимают. я недавно переезжал, пришлось выкинуть килограмм 15 книжек. лучше уж наладонник. да еще и про оракле. у него и книжки толстые и не удобные.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536925
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дорогая Violina, убедительная просьба внимательнее читать мои сообщения и анализировать

Про IO не трудно догaдаться
DB2 пишет в журнал транзакций и БД, блокировки в памяти.
Oracle пишет в БД, REDO, UNDO.
Считаем сколько пространства занимает ITL на странице. Cмотрим в документацию по Oracle и видим (28 + 24*кол-во заинтересованных транзакций) байта
У меня осталась старая конфигурация с одной из прeвыдущих работ
28 + 24 *4 = 124 байта. Размер блока 124/2048*100=6%
6% IO в системе идет на поддержание механизмов блокировки Oracle. Посчетайте для своей и скажите нам от то что получилось у вас.

Смотрим на практически одинаковые машины в тесте tcp-c места 1,5,6 и внимательно анализуируем конфигурации и показанную производительность

С другой стороны вы не доказали что ожидание на блокировке и Lock Escalation это более ресурсоемко чем порождение новой страницы в памяти и запись ее в UNDO TableSpace что помимо IO требует еще и дополнительной памяти

P.S. Вышесказанное есть моя личная точка зрения и не может служить официальным заявлением компании IBM
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536932
Gt.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gt.
Гость
авторPL/SQL гораздо богаче дибитушного SPL. в DB2 считается нормой SQL programming using host languages.

естественно, т.к. других вариантов нет. то что внешние процедуры зло уже поняли все производители субд, и IBM тоже, но добавить свой язык в 2 субд сразу нереально.
то же самое с версионной моделью, уже коню ясно что это большая фича, весь опенсоурс это версионики, MS добавили версионность, IBM бы и рада - но опять же в 2 субд ...
и на счет мэйнфрейма - кому этот пережиток прошлого нужен ? чтоб водружать туда Linux как это предлагает IBM ? за такие деньги ?? я понимаю еслиб он еще мог показать хоть какой-то результат на TPC, а так это для тех кто подсел и не может с 60х годов свое ПО переписать.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536936
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хе, а я шел - шел, смотрю старичок книжки продает, смотрю Оракл (новенькая ещё, Виолину вспомнил... эт сетра короче). Да и дешево совсем - 3 бакса. Пусть стоит, под моник поставлю или ещё куда
зы. Наладонник это хорошо, только денег нема, пока.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536951
Gt.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gt.
Гость
авторСмотрим на практически одинаковые машины в тесте tcp-c места 1,5,6 и внимательно анализуируем конфигурации и показанную производительность

и делаем вывод - что дб2 сколько IO не наращивай - результата не будет, поэтому все рекорды последних лет IBMу приходится делать на оракле, т.к. если туда поставить достаточно контролеров то можно попробывать обогнать конкурента по железу.

как только дб2 на новыз процах скинут с 1 места IBM запустит на них оракл и все встанет на свои места, так было всегда.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32536957
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to NewYear

авторну а как поисходит изоляция транзакций? если меня интересует уровень RR, скажем. я что, так и буду работать с какой-то версией, а в это время кто-то изменит данные или прочитает неверные данные? я пишу mission-critical application, и у меня на первом месте стоит сохранность данных.

В Oracle 2 уроня изоляции

READ COMMITED и SERIALIZABLE

Код: plaintext
1.
2.
3.
4.
5.
                    |    Read Committed   Serializable  
-----------------------------------------------------
Dirty write         |    Not possible     Not possible  
Dirty read          |    Not possible     Not possible  
Nonrepeatable read  |    Possible         Not possible  
Phantoms            |    Possible         Not possible


То что вы хотите достигается уровнем SERIALIZABLE.

я что, так и буду работать с какой-то версией, а в это время кто-то изменит данные

Oracle в этом отношении не полный версионник. То есть такие сюрпризы из-за одновременного изменяющего доступа в одной и той же строке не откладываются до коммита а проявляются немендленно.

См. здесь

Oracle9i - read uncommitted
ViolinaИнтересно так же поведение при возникновении блокировок, когда наша транзакция пытается изменить строку, уже изменненую в другой транзакции после начала нашей. В нашей транзакции возникнет ожидание, до тех пор пока другая транзакция не будет завершена - коммитом или ролбэком. При ролбэке в нашей транзакции все пройдет так, как быдто бы другой транзакции и не было. При коммите произойдет следующее. Если уровень изоляции нашей транзакции READ COMMITTED, то изменение будет успешным. Мы как бы смогли увидить новые данные и изменить их. В случае если уровень изоляции нашей транзакции SERIALIZABLE, мы получим отлуп

ORA-08177: can\'t serialize access for this transaction


Если вы не хотите, чтобы юзер ждал окончания транзакции другого юзера. Можно делать предварительно select * from update nowait и информировать его сразу что ресурс заблокирован.

или прочитает неверные данные

В Oracle dirty read отсутсвует, так что неверные данные он не прочитает. В Oracle запросы согласованы на момент его начала и выполняются в режиме serializable. Так же исклчены такие ситуации, описанные ниже для MS SQL

Oracle9i - read uncommitted
vc123Under the default READ COMMITTED IL, SQL Server does not leave behind any locks -- as soon as the row is read, the lock is removed. This can lead to well-known anomalies with inconsistent aggregates or incorrect bank transfers (I believe at least one of them is described in the Kyte book). The problems of course can easily be fixed programmatically. Moving up to a higher isolation level, REPEATABLE READ, may and does create deadlocks in the situations where RC IL leads to inconsistencies.


NewYearв Oracle слишком сложно писать внешние процедуры, которые используют SQL, по сравнению с DB2, я читал доки. из-за дополнителных действий с бд. если дадите ссылку, покажу пальцем, где что именно.

Возможно. Но ... Принципы разработки под Oracle я уже приводила

- если можно, сделай это с помощью одного оператора SQL
- если это невозможно, сделай это в PL/SQL
- если это невозможно в PL/SQL, сделай это с помощью Java
- если это невозможно с помощью Java, сделай внешнюю процедуру на С
- если и это невозможно, надо серъезно подумать зачем это вообще нужно

Внешние процедуры в Oracle пишут когда нужны очень массивные вычисления с данными, с которыми лучше справятся например модули написанные на С чем PL/SQL программы. Писать внешние процедуры чтобы использовать SQL имхо не логичный подход. Этовсе равно что ездить в Мюнхен из Питера чтобы купить пиво "Балтика".

Oracle Advansed Queuing, мне просто смешно читать. В сравнении с WebSphere MQ. или это к теме не относится?

Относится, мне интересно узнать про фичи DB2 из первых рук. Так что не стесняйтесь, рассказывайте:)
С утверждением согласна, Oracle Advansed Queuing не так сильно развито, до его появления вообще был проблематично с решениями задач, решать которые призвано Oracle Advansed Queuing. В Oracle есть еще поддержка pipes, что эффективно позволяет решить множество задач, в DB2 наверняка тоже есть.

а ПК и UNIX это тоска смертая.

В смысле?
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537006
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to riman

Да, ваши аргументы меня убедили:) Завтра начинаю учить DB2.

Вы не там книжки смотрите. Стоимость хороших книжек по Oracle 700-1000 рублей, за границей 30-60 Евро. А вот книжек по DB2 трудно найти, нет спроса нет предложения, не так уж сильно распостранена эта СУБД.

PS
Только без обид, каков наезд таков отет:)

to Nikolay

Про lock escalation я значит не так выразилась, извиняюсь. Я имела в виду что дополнительное IO меньшее "зло" чем lock escalation, ИМХО.

28 + 24 *4 = 124 байта. Размер блока 124/2048*100=6%


Размер блока и INITTRANS/MAXTRANS можно менять. При резком скачке заитересованных транзакций, Oracle может занимать место из свободного места блока, предназначенно для данных. Если хочеться сэкономить место, например для редко изменяемых справочников, можно INITTRANS в 1 выставить и pctfree в 0, стандартный прием. Так что вместо 6% можно написать и 2% и 10%.

А на мой встречный вопрос/аргумент по поводу IO и записи UNDO в журнал будет реакция? Правильно мое предположение или нет? Если нет то аргументы ...

Violina
Ведь если есть только redo журнал, то просто необходимо больше данных писать в него (+ UNDO данные, которые в Оракл пишуться в сегменты отката). И окончания записи всех этих данных при комите нужно обязательно дождаться.

...
Ведь раз UNDO тоже пишется в REDO журнал , оно тоже должно гарантировано быть записано на диск на случай сбоя , чтобы откатить незакомиченные данные на момент сбоя. В Oracle этого делать не нужно, redo журналы для отката как такового не используются , но например измения в rollback segments также защищены redo журналом , так что они (измения в rbs) тоже могут быть записаны Ораклом тогда, когда он сочтет нужным.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537057
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Violina.
Какая разница где покупать? Хорошая книжка может и не в таких местах лежать. А кстати это хорошая книжка по Ораклу или нет:
Использование Oracle8/8i Специальное издание. Издательство "Вильямс" Москва-Санкт Петербург - Киев. 1999г. Автор Вильям Дж. Пейдж.
Купил то я её только в целях ознакомления.
[quot Violina]...аргументы меня убедили:)[quot]
Кажется вы меня опять путаете с кем-то :), хотя.. давайте переходите... на тёмную сторону силы :)
[quot Violina]...книжек нет..[quot]
У меня столько книжек по DB2 - большая сов. энциклопедия. Кто ищет тот и обрящет. :)
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537069
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gt.
при чем мейфрейм? покажи пальцем, где я сказал про мейнфрейм.

SP - может и зло. не знаю. я их не использую, как правило.

>естественно, т.к. других вариантов нет. то что внешние процедуры зло уже >поняли все производители субд, и IBM тоже, но добавить свой язык в 2 субд >сразу нереально.

зачем добавлять еще язык, если и так можно писать на чем угодно?
"других вариантов нет, кроме как писать на чем угодно"
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537073
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to riman

А кстати это хорошая книжка по Ораклу или нет:
Использование Oracle8/8i Специальное издание.

НЕТ!!! Но я по ней учить Оракл начинала за отсутствием чего то лучшего в то время. На самом деле действительно хороших книг по Oracle очень мало, так что выручает только документация.

Кто ищет тот и обрящет. :)

Это да. Кстати у меня тоже есть одна. Завтра скажу название (на ПТ чтобы здесь не засорять) а вы мне скажете хорошая ли она.

По Оракл хорошие книги

Oracle для профессионалов, Том Кайт
Oracle проектирование баз данных, Дейв Энсор
Oracle PL/SQL для профессионалов, С. Фейерштейн
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537111
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to NewYear

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

Когда есть втроенный платформонезависимый язык все же приятней. Знаете такую несколько шуточную притчу про программное обеспечение - а именно гибкость versus простота использования. Крайние варианты

- постовлять клиентам программу где есть только кнопка "сделать". Нажимая ее юзер получает желаемые результаты
- поставлять клиентам ... компайлер!, мотивируя компайлер это такая мощная гибкая штука, с пом. нее вы сможетесделать все что захотите, только вам придется поппотеть

На этой шкале Oracle лежит ближе к варианту "кнопка" а DB2 к варианту "компайлер":)

А написать свой язык для DB2 сейчас действительно нереально. Oracle проделал большой путь в PL/SQL - наработки, объединение PL/SQL и SQL энджин итп. Такое не сделаешь за год и это потребует больших затрат девелоперских ресурсов.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537157
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Violina

>ORA-08177: can't serialize access for this transaction
Ну, значит я получу отлуп :)
Не уверен, что этот вариант лучше, чем блокировка. посуди сама -- если 2 транзакции делают UPDATE одной строки с SERIALIZABLE, одна из них обязательно получит отлуп.



а вот так что будет :)

insert into test values ('A' , ... );
insert into test values ('B' , ... );


транзакция A

select * from test where id = 'A' into :A
update test set data = :A where ID = 'B'

транзакция B

select * from test where id = 'B' into :B
update test set data = :B where ID = 'А'



MQ это не фича db2 а другой продукт, просто Oracle AQ на нее похоже. есть что-то похожее у Microsoft, называется MSMQ.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537290
vc123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
а вот так что будет :)

insert into test values ('A' , ... );
insert into test values ('B' , ... );


транзакция A

select * from test where id = 'A' into :A
update test set data = :A where ID = 'B'

транзакция B

select * from test where id = 'B' into :B
update test set data = :B where ID = 'А'


The above is a very-well known (to any Oracle developer) example of so-called write skew anomaly under SNAPSHOT isolation. ( Despite the 'SERIALIZABLE' name, what Oracle really has is correctly called SNAPSHOT isolation ).

The anomaly is trivially fixed by a judicious use of 'select for update'.

The so-called locking scheduler, of which DB2 is an example along with Sybase/SQL Server/et cetera, does not have this anomaly thanks to locking the relevant rows. However, any locking scheduler has a much nastier anomaly that allows incorrect aggegates (sum/avg/etc) in the Read Committed isolation for which there is no good cure at all.

VC
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537305
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
NewYear - as for me, IBM MUST supply MQSeries with DB2. MQ solves many problems, and which Violina mentioned also.
I'd say - MQ usage is a keyword of a system design....
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537312
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViolinaС утверждением согласна, Oracle Advansed Queuing не так сильно развито, до его появления вообще был проблематично с решениями задач, решать которые призвано Oracle Advansed Queuing. В Oracle есть еще поддержка pipes, что эффективно позволяет решить множество задач, в DB2 наверняка тоже есть
Эх, Виолина, Виолина. Ну кто же так легко с голословными утверждениями соглашается?

Я имею опыт работы с MQ и могу сказать, что у MQ нет по сравнению с AQ, так это интегированности транзакций очередей и транзакций БД.
Было, вон на одном предприятии: поставили MQ, приехало сообщение, что фура с скоропортящимися продуктами на таможне стоит. Програмка, перетаскивающая сообщения в БД - бац и свалилась. Технический итог: сообщение извлечено из очереди, а в базу не записано. Фактически, сообщение потерялось...
Финансовый итог: фура простояла на таможенном посту 3 дня. Продукты протухли.
С AQ такой фокус не прошёл бы: транзакция, однако. К тому же восстановление очередей AQ при сбое ПО идёт вместе с БД.
Про недоделанность AQ тоже не соглашусь. JMS они имплементируют.
В чём проигрывает AQ - это в потенциальной скорости (около 1000 сообщений/секунду). По сути, скорость ограничевается скоростью выполнения DML операций в БД.

2Gt. Про hibermate напишу как освобожусь. Вы пока объясните мне, зачем нужно иметь там по 80 полей в таблице?
_______________
Alex
There are three kinds of people: those who can count and those who can't
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537348
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/87266
эх, stdio, ручки ваши кривые...
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537360
Gt.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gt.
Гость
авторВы пока объясните мне, зачем нужно иметь там по 80 полей в таблице?

80 в 5 таблицах, по 16 полей в каждой, да в принципе не важно сколько, важно, что незачем посылать запрос где хитро сплетаются 5 таблиц когда достаточно "select name from table1 where name like ..."
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32537478
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Violina: Давайте не использовать слово IMHO и "мне кажется" только осязаемые измеримые аргументы.

Violina
Ведь если есть только redo журнал, то просто необходимо больше данных писать в него (+ UNDO данные, которые в Оракл пишуться в сегменты отката). И окончания записи всех этих данных при комите нужно обязательно дождаться.


DB2 нет _UNDO_ данных почему DB2 должна писать больше в transaction log непонятно ??? Если вам интересно как DB2 пишет в журнал часть теории можно почитать здесь http://]http://www.osp.ru/os/2004/03/066.htm
www.acm.org за деньги, ну и конечно документацию по DB2.

Violina
Ведь раз UNDO тоже пишется в REDO журнал, оно тоже должно гарантировано быть записано на диск на случай сбоя, чтобы откатить незакомиченные данные на момент сбоя. В Oracle этого делать не нужно, redo журналы для отката как такового не используются, но например измения в rollback segments также защищены redo журналом, так что они (измения в rbs) тоже могут быть записаны Ораклом тогда, когда он сочтет нужным.


Еще раз забудте про UNDO здесь его пока нет.
...
Рейтинг: 0 / 0
25 сообщений из 260, страница 5 из 11
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Интилигентность оптимайзера, база без хинтов - реальность?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]