powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Интилигентность оптимайзера, база без хинтов - реальность?
25 сообщений из 260, страница 2 из 11
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531164
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stdioЧто значит "лучший"? Оптимизатор оценивает планы в неких виртуальных "попугаях" (С) Шин. Лучший в "попугаях" - возможно. Но почему можно утверждать, что этот план будет самым лучшим на работающей системе?


Опять Вы за своё, хорошо, возможно Ваш план будет лучше. Но оптимизатор выберет лучший из рассмотренных им. Хотя чей план будет лучше это надо ещё проверить. Способны ли Вы сидеть круглые сутки и собирать постоянно статистику? Нет.

Про "неверный" и "неосуществимый" вы меня уделали, здесь я пас.:)

Adviser - это я так назвал утилиту для AS/400 - Visual Explain. Обычно она дает советы по оптимизации.

ЗЫ. А где все DB2-ники? Я один, что ли лафу гоню на работе?
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531170
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) ViolinaКстати в Oracle 10g тоже появился родной SQL Tuning Advisor. И ИМХО в Oracle тоже все идет к тому, что статистика всегда должна быть собранной и автоматически поддерживается uptodate.


Ну вот ещё не много и мы переманим Violin'y
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531187
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ландно, теперь спрошу ка я у вас, уважаемые конкуренты.
Я немного не понял про редо-журнал. По моим представлениям - это объекты в памяти, хранящие изменения в БД. Эти изменения периодически скидываются на диск, во время простоев или в т.п. ситуациях. А если произошел сбой в питании? Данные теряются что ли? Видимо я что то неправильно понял, но:
ViolinaПоэтому redo журнал пишется очень быстро с одной стороны, с другой стороны нет необходимости скидывать изменные данные на диск именно сейчас. Oracle скидывает их по своему усмотрению, расномерно распределяя нагрузку по времени - еще не закомиченные данные могут быть скинуты на диск или наоборот закомиченные данные могут оставаться в памяти, пока Oracle не сочтет нужным их записать

вот после этого я совсем смутился... Почему "не закомиченные данные скидываюдтся на диск, а "закомиченные" оставаться в памяти??? Очень необычно...
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531188
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>ЗЫ. А где все DB2-ники? Я один, что ли лафу гоню на работе?
Не ты один, я тож тут, коллега...:-)
Наверно было бы полезным вывесить пару скриншотов из Explain-a
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531206
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:)) 2 DB2-ника, гонящие лафу - это показатель. Ораклоидов (ораклистов) намного больше. :))
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531224
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не дибитушник щас...) я сайбэзист..) волею судеб..
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531225
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Stdio: По поводу того что оптимизатор думает ограниченное время. Не корректно db2advis утилита которой ты подсовываешь workload, ограничение на размер индексов, она передает это соответсвующим образом оптимизатору и он может думать над этим час, два как ты скажешь в конце выдает набор рекомендаций. Опять же можно играться с уровнем оптимизации очень помогает.

Да конечно DB2 Optimizer не идеальный и бывают случаи когда надо немного менять схему, когда допустим в Oracle можно обойтись хинтом. Но в 99% случаев он свою работу делает хорошо.

Насколько я знаю в 8.2 будет вещь сходная с HINTS только с моей точки зрения реализованная более красиво. Optimization profiles. Некоторый XML документ сужающий для оптимизатора список возможных вариантов оптимизации. Опятьже это делает администратор а не разработчик. Исходя из данных (знаний) которые оптимизатору могут быть не доступны

P.S. Вышесказанное есть моя личная точка зрения и не может служить официальным заявлением компании IBM
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531230
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Adviser and [Visual] Explain exist for DB2 UDB for U/W/L also. imho.
Also there is "optimize for n rows"
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531254
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rimanНо оптимизатор выберет лучший из рассмотренных им.
Вот с помощью хинтов оптимизатор и наводят на мысль, что, мол, друг, посмотри сюда, там тебе лучше будет...

rimanЯ немного не понял про редо-журнал. По моим представлениям - это объекты в памяти, хранящие изменения в БД. Эти изменения периодически скидываются на диск, во время простоев или в т.п. ситуациях. А если произошел сбой в питании? Данные теряются что ли? Видимо я что то неправильно понял
Поясню своими словами. На пальцах. Во время своей работы при изменениии содержимого БД, Oracle скидывает на диск данные. Этих данных достаточно для восстановления БД на момент failure. Поскольку по сути, работа БД это изменение блоков в файлах данных на диске, то в лог пишется старая версия блока и новая версия блока. В результате, за время работы образуется этакая "лента" из журналов. Имея файлы данных на определённый момент времени t0 и применив к ним накопившиеся журналы с этого "определённого" момента времени t0, мы можем восстановить состояние БД на любое время после t0.
Nikolay KulikovПо поводу того что оптимизатор думает ограниченное время. Некорректно db2advis утилита которой ты подсовываешь workload, ограничение на размер индексов, она передает это соответсвующим образом оптимизатору и он может думать над этим час, два как ты скажешь в конце выдает набор рекомендаций. Опять же можно играться с уровнем оптимизации очень помогает
db2advis != оптимизатор.
Оптимизатор это набор внутренних средств БД, которые после передачи SQL-выражения (скажем, клиентской программой) выполняют его анализ и строят "стратегию" его выполнения.
gardenmanНаверно было бы полезным вывесить пару скриншотов из Explain-a
Да, конечно.
_______________
Alex
There are three kinds of people: those who can count and those who can't
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531299
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Db2advis позволяет использовать весь описанный тобою набор процедур и структур для оптимизации нагрузки на CУБД
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531302
Oracle XPert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Violina! Поддай жару!

========

Я так думаю. Оптимизатор ДБ2 работает по принципу [ Rotor H + USE_NL], не зная, что есть и другие способы.
Оракловский оптимизатор работает деиствительно как минимизатор маршрута к хранящимся данным, да и разнообразнее..
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531317
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щас мы все тут перегрыземся...
Код: plaintext
1.
2.
Conclusion
It is not true that Oracle 9i Database is better than DB2 Universal Database v8. 1  or vice versa. Both products can be used to build stable and efficient system and the stability and effectiveness of your applications and databases depend rather from the experience of the database developers and database administrator than from the database's provider.

опять же копирайты чьи - то, не мои, источнику верить можно
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531318
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь, вот так удобнее читать:
Код: plaintext
1.
2.
3.
4.
5.
6.
Conclusion
It is not true that Oracle 9i Database is better than DB2 Universal Database v8. 1  or 
vice versa. Both products can be used to build stable and efficient system and the 
stability and effectiveness of your applications and databases depend rather from 
the experience of the database developers and database administrator than from 
the database's provider.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531328
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to riman

По моим представлениям - это объекты в памяти, хранящие изменения в БД. Эти изменения периодически скидываются на диск, во время простоев или в т.п. ситуациях. А если произошел сбой в питании? Данные теряются что ли? Видимо я что то неправильно понял

Нет, есть непосредтвенно блоки данных и есть redo журнал, это две разные разницы. Реду журнал пишется постоянно и без кэширования, сразу на диск - в режиме O_SYNC. Успешность коммита подтверждается тогда и только тогда, когда все redo entries, относящиеся к транзакции, сброшены на диск.

Совсем другая ситуация в отношении самих данных. Изменения в них нет необходимости записывать на диск сразу, например если произошел коммит, так и нет необходимости выжидать с записью, Oracle может сбрасывать измененые данные на диск, когда это сочтет нужным, тем самым устроняются узкие места и потенциальные ожидания в таких важных процессах как сброс данных на диск. Существует ряд параметров, позволяющих это поведение тьюнить в зависимости от требований приложения/доступности данных итп.

В случае сбоя, по имеющимся redo журналам изменения в блоках данных несброшенные на диск (потерянные) восстанавливаютя путем наката redo журнала на файлы данных или непосредственно на блоки до момента непосредственно предшествующего сбою.

См. также

Advantages of the Fast COMMIT
The fast commit mechanism ensures data recovery by writing changes to the redo log
buffer instead of the data files. It has the following advantages:
• Sequential writes to the log files are faster than writing to different blocks in the
data file.
• Only the minimal information that is necessary to record changes is written to the
log files, whereas writing to the data files would require whole blocks of data to be
written.
• If multiple transactions request to commit at the same time, the instance
piggybacks redo log records into a single write.
• Unless the redo log buffer is particularly full, only one synchronous write is
required per transaction. If piggybacking occurs, there can be less than one
synchronous write per transaction.
• Because the redo log buffer may be flushed before the COMMIT, the size of the
transaction does not affect the amount of time needed for an actual COMMIT
operation.
Note: Rolling back a transaction does not trigger LGWR to write to disk. The Oracle
server always rolls back uncommitted changes when recovering from failures. If there
is a failure after a rollback, before the rollback entries are recorded on disk, the
absence of a commit record is sufficient to ensure that the changes made by the
transaction are rolled back.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531354
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to riman

Both products can be used to build stable and efficient system and the stability ...

Безусловно. У обеих баз есть свои сильные и слабые стороны. Мне просто было интересно узнать о них. Как я уже писала я действительно была впечатлена "спосбоностью" оптимайзера DB2, если он действительно такой умный.

И, согласитесь, например метод реализации блокировок в Oracle при котором

- не происходит эскалаций
- чтение не блокирует запись
- запись не блокирует чтение
- чтение не накладывает блокировок вообще

тоже заслуживает уважения.

У меня еще вопрос, тоже несколько утрированный. Прошу не принимать его буквально. Слышала, что у DB2 настолько мощная SQL энджина, что необходимость во встроенном языке программировании практически отсутсвует. Если возможно, можно пару примерчиков, что (какие фичи)
имеются в виду? Что можно сделать с пом. SQL, для чего в других языках понадобились бы процедцры и функции.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531359
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Violina: вы думаете DB2, MS, Informix по другому пишут в Log и данные на диск?
Я вас уверяю идеологически у всех почти все одно и тоже. Причем в DB2 это почти все с самого рождения в 1998 это уже точно все было.

У Оracle в отличии от остальных надо писать еще в UNDO tablespaces. Что опять есть дополнительная нагрузка на IO. С другой стороны это плюс для выполнения отчетов по OLTP системе.

2Ora Xpert: Больше конструктивизма, лучше приводить примеры чем сотрясать воздух попусту.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531370
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DB2 CookBook
http://ourworld.compuserve.com/homepages/Graeme_Birchall/
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531378
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Nikolay Kulikov - plus an URL to a DB2 Information Center -> Reference -> SQL. imho.

Violina - "если он действительно такой умный." it is. Try "search" at http://www.db2mag.com
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531387
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Nikolay

Я вас уверяю идеологически у всех почти все одно и тоже.

Иначе я и не думала. Трудно представить, как это могло бы быть сделано подругому. Просто riman спросил про redo, я ему ответила и указала на разницу работы с самими данными и с журналом. Вопрос опять же, в способах реализации механизма защиты/отката сделанных изменений.

У Оracle в отличии от остальных надо писать еще в UNDO tablespaces. Что опять есть дополнительная нагрузка на IO. С другой стороны это плюс для выполнения отчетов по OLTP системе.


Да, общий прирост в нагрузке на IO есть, но он частично компенсирован облегчением нагрузки на redo журнал. Откатывать транзакцию и восстанавливать версии данных на определенное состояние эффективнее/быстрее с пом. rollback segments чем проигрывая redo журнал в обратном направлении. rollback segments также цена за отсутстсвие блокировок при чтении/изменении. Классическая дилема - память/быстродейтвие.

PS
Ссылку посмотрю, может еще вопросы возникнут:)
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531417
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эффективнее использовать UNDO вместо REDO в Oracle, не в DB2. Про то как DB2 пишет в журнал можно посмотреть в "Открытых системах" есть статья про ARIES семейство алгоритмов начально разработанных в IBM Research и используемых во многих системах для журналирования. Так же если есть желание можно за денюжку почитать на www.acm.org
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531435
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Nikolay

Эффективнее использовать UNDO вместо REDO в Oracle, не в DB2.

Не сомневаюсь. Естественно раз UNDO информация также лежит в журнале, оптимизация идет в направлении эффективного отката с пом. redo журнала. Я говорю о разделении следующих задач в Оракл

- откат транзакций и получение before images
и
- защита(журнализация) изменений на случай сбоя

целями которго являеются в частности

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

Ведь раз UNDO тоже пишется в REDO журнал, оно тоже должно гарантировано быть записано на диск на случай сбоя, чтобы откатить незакомиченные данные на момент сбоя. В Oracle этого делать не нужно, redo журналы для отката как такового не используются, но например измения в rollback segments также защищены redo журналом, так что они (измения в rbs) тоже могут быть записаны Ораклом тогда, когда он сочтет нужным.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531507
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я знаю в 8.2 будет вещь сходная с HINTS только с моей точки зрения реализованная более красиво. Optimization profiles. Некоторый XML документ сужающий для оптимизатора список возможных вариантов оптимизации. Опятьже это делает администратор а не разработчик. Исходя из данных (знаний) которые оптимизатору могут быть не доступны


В Oracle есть несколько похожая фича - execution plan outlines.

Для Ораклоидов

Вот нашла интересную статью про LEO

http://www.citforum.ru/database/articles/leo.shtml

SQL — декларативный язык, т. е. при его использовании требуется, чтобы пользователь указал только то, какие данные ему желательно получить , оставляя на долю оптимизатора запросов РСУБД принятие трудного решения о том, как лучше всего получить доступ к данным и обработать их.

Производя мониторинг запросов при их выполнении, самонастраивающийся оптимизатор сравнивает свои оценки с реальной мощностью результата на каждом шаге QEP и вычисляет поправки для оценок. Эти поправки могут использоваться для оптимизации аналогичных запросов в будущем. Более того, обнаружение погрешностей оценок может инициировать повторную оптимизацию запроса в середине его выполнения.

Непплохо в общем:) На первый взгляд впечатляет ... Создать точную картину как это на самом деле можно конечно, только действительно реально поработав с DB2.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32531700
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViolinaСлышала, что у DB2 настолько мощная SQL энджина, что необходимость во встроенном языке программировании практически отсутсвует.
Действительно, на DB2 SQL можно написать процедуру аналогичную полноценому database-приложению, хотя мне больше нравится писать процедуры на Jave.

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

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


Нее, я не имела в виду, встроенный язык программирования. У Oracle PL/SQL в этом отношении тоже не слабый. И также есть поддержка явы.

Меня интересует именно чистый SQL, который якобы позволяет делать некоторые вещи, для которых в других СУБД пришлось бы прибегать к встроенному языку программирования.
Как говорит Том Кайт

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

вот хотелось бы конкретный пример мощности чистого SQL. Так что пока не приведете пример, буду считать высказывание о SQL энджине мифом:)

Я где то читал, что PL/SQL у Oracle богаче.

Сравнить не могу, скажу что PL/SQL действительно полноценный многофункциональный язык. Например в PL/SQL есть триггреры на DDL.
...
Рейтинг: 0 / 0
Интилигентность оптимайзера, база без хинтов - реальность?
    #32532058
Gt.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gt.
Гость
было бы наивно считать что ИБМ создала универсальный оптимизатор ... как он работает немеряно доков на их сайте (причем на русском)

Administration Guide: Performance
ftp://ftp.software.ibm.com/ps/products/db2/info/vr8/pdf/letter/nlv/db2d3r80.pdf

Visual Explain Tutorial
ftp://ftp.software.ibm.com/ps/products/db2/info/vr8/pdf/letter/nlv/db2tvr80.pdf

Индекс сдесь:
http://www-306.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v8pubs_trans.d2w/report


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


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