powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Oracle XE: a five years of no progress
25 сообщений из 200, страница 7 из 8
Oracle XE: a five years of no progress
    #36959727
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinНо, конечно, чтобы эту разницу увидеть, надо нагрузку соответствующего характера иметь.
Безусловно, такую разницу нетрудно продемонстрировать на примере, но интересен вопрос степени актуальности в типичных задачах.

Запрос попадает в Oracle следующим образом. Если у нас есть prepared statement, то, само собой, он замечательно используется. Если его нет, то в кэше сессии делается поиск совпадающего запроса (session cached cursors). Если там нет, в кэше запросов делается поиск плана, совпадающего по тексту запроса и контексту (текстуально одинаковые запросы могут иногда давать разные планы). Это называется soft parse. Если такой не найден, то собственно строится план - соответственно, hard parse. Разумеется, best practice сводится к избавлению от лишних parse. И если приложение написано в обычной разумной манере без наворотов, то разница между статикой и динамикой - это в общем-то разница между session cursors, в худшем случае sort parse и его отсутствием.

Насколько и где эта картина отличается от DB2-шной?
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36959745
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaЗапрос может пойти по неправильному плану, начать тормозить,
Не может. Он не пойдёт работать по плану с Вашим индексом до тех пор, пока в тексте запроса не будет использован Ваш оператор ISNULL.

Victor Metelitsaведь они найдут козла отпущения для своих собственных проблем.
Не найдут. Это лучше спросить у Oracle DBA - я всё же несколько в стороне от подобных тем - но насколько я могу сходу оценить, если не давать разработчикам ненужных прав на вашем сервере, они этот индекс нигде никогда не увидят.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36959762
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64Прошу прощенья, что встреваю - но (если я правильно понял из предыдущих сообщений) почему, если DB2 не умеет создавать индексы по функциям - то это для DB2 очень плохо, а если Oracle не может создавать индексы по null полям - то это никому и не надо?да какая разница
делайте выводы сами
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36959784
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64Прошу прощенья, что встреваю - но почему
Не надо - потому что даже Виктор, которого это вроде как бесит, на вопрос "а для чего нужно-то" отвечает "ну я не знаю, какие будут запросы, может и понадобится". А чем плохо - (пожимая плечами) - да не знаю. При наличии вычислимых полей - можно жить. Разве что я посмотрел бы, не идёт ли в результате ненужного дублирования данных. Но с другой стороны, эти поля можно, наверное, выводить в select без перевычислений.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36959827
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerЗапрос попадает в Oracle следующим образом. Если у нас есть prepared statement, то, само собой, он замечательно используется. Если его нет, то в кэше сессии делается поиск совпадающего запроса (session cached cursors). Если там нет, в кэше запросов делается поиск плана, совпадающего по тексту запроса и контексту (текстуально одинаковые запросы могут иногда давать разные планы). Это называется soft parse. Если такой не найден, то собственно строится план - соответственно, hard parse. Разумеется, best practice сводится к избавлению от лишних parse. И если приложение написано в обычной разумной манере без наворотов, то разница между статикой и динамикой - это в общем-то разница между session cursors, в худшем случае sort parse и его отсутствием.

Насколько и где эта картина отличается от DB2-шной?В динамике у db2 практически то же самое, кроме session cached cursors (по крайней мере, я не знаю аналогов).

В статике у db2 в рантайме нет:
- sort parse
- hard parse
- проверки авторизаций пользователя на все объекты (не забываем, что оракл тоже должен это делать), используемые в запросе. Проверяется только право execute на пакет, в котором хранятся все статические запросы программы.

В статике в db2 план запроса строится при прекомпиляции и получает некий id, по которому он в рантайме находится в системном каталоге или кэше статических запросов.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36959908
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein
В статике у db2 в рантайме нет:
- sort parse
- hard parse
- проверки авторизаций пользователя на все объекты (не забываем, что оракл тоже должен это делать), используемые в запросе. Проверяется только право execute на пакет, в котором хранятся все статические запросы программы.

уже пережевывали. технология 80х, сегодня в моде cost based оптимизаторы которые с ростом данных подстраивают план под изменяющиеся данные. а тут какой план зашился с тем и жить.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36959917
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerconst64Прошу прощенья, что встреваю - но почему
Не надо - потому что даже Виктор, которого это вроде как бесит, на вопрос "а для чего нужно-то" отвечает "ну я не знаю, какие будут запросы, может и понадобится".

Уже не один раз надо было, подробности уже забыл, а недоумение помню.

"user-defined индекс, к нему оператор ISNULL()" - это, вообще, в какой версии? Я не помню таких штук.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36959948
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsa
"user-defined индекс, к нему оператор ISNULL()" - это, вообще, в какой версии? Я не помню таких штук.
в восьмерке было, древней оракла я не застал ...
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36959981
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!уже пережевывали. технология 80х, сегодня в моде cost based оптимизаторы которые с ростом данных подстраивают план под изменяющиеся данные. а тут какой план зашился с тем и жить.Если с изменением данных план не должен меняться, то оно, может, и хорошо, что план зашился.
Но если хочется, то можено и rebind пакетам делать после обновления статистики.
Никто не говорит, что static всегда лучше.
Просто в db2 есть дополнительная возможность, которую можно использовать, можно нет.

Про cost based оптимизатор - не понял, это к чему?
В db2 он таким и был с древности.
Или в оракле он более костистее? :)
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960005
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64Прошу прощенья, что встреваю - но (если я правильно понял из предыдущих сообщений) почему, если DB2 не умеет создавать индексы по функциям - то это для DB2 очень плохо, а если Oracle не может создавать индексы по null полям - то это никому и не надо?Опупенная логика. А знак вопрос - это по ошибке, да?
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960015
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein
Про cost based оптимизатор - не понял, это к чему?
В db2 он таким и был с древности.
Или в оракле он более костистее? :)
если план не меняется в зависимости от собраной статистики имхо это скорее rule-based, но это мое имхо.
кстати, то что в дб2 оптимизатор кост с древности распростроненное заблуждение. реально у оракла он появился раньше (есть пруф), а произошло это только в семерке, т.е. не так уж и давно.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960026
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!Victor Metelitsa
"user-defined индекс, к нему оператор ISNULL()" - это, вообще, в какой версии? Я не помню таких штук.
в восьмерке было, древней оракла я не застал ...
А можно примерчик? Может, я это под другим названием знаю.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960041
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!Mark Barinstein
Про cost based оптимизатор - не понял, это к чему?
В db2 он таким и был с древности.
Или в оракле он более костистее? :)
если план не меняется в зависимости от собраной статистики имхо это скорее rule-based, но это мое имхо.
кстати, то что в дб2 оптимизатор кост с древности распростроненное заблуждение. реально у оракла он появился раньше (есть пруф), а произошло это только в семерке, т.е. не так уж и давно.
В DB2 2.1 for OS/2 cost-based оптимизатор был, rule-based оптимизатора не было, хинтов не было. Oracle 7 примерно этих же лет, что из них раньше - не помню, но народ изо всех сил старался держаться от их "cost-based" оптимизатора подальше.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960050
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потом появился Oracle 8 и радостные статьи - ура, теперь cost-based-оптимизатором можно пользоваться. Недолго радовались, как я понимаю.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960065
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!кстати, то что в дб2 оптимизатор кост с древности распростроненное заблуждение. реально у оракла он появился раньше (есть пруф), а произошло это только в семерке, т.е. не так уж и давно.В моём пруфе оно появилось в 1983 (это если дедушку System R не считать):
The Big Picture: IBM DB2 Information Management Software and DB2 Universal Database .
Было бы интересно посмотреть на опровержение этого заблуждения.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960086
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinsteinкроме session cached cursors (по крайней мере, я не знаю аналогов)
Это по сути подтяжки для разработчиков, слишком ленивых, чтобы прочитать про prepared statements.

Mark Barinsteinпроверки авторизаций пользователя на все объекты (не забываем, что оракл тоже должен это делать)
Оракл делает это при hard parse и немного при soft parse (собственно, это и занимает основное время soft parse, насколько я понимаю).

Ну то есть, собственно, как я и предполагал, вопрос сводится к сопоставлению prepared statement и динамики с вероятным soft parse и редким hard parse. Конечно, когда можно сработать "без потерь", статика лучше. Но, полагаю, не будет неправильным сказать, что статика хороша тогда и только тогда, когда в ней зашита обязательная сильная фильтрация, а переменная часть непринципиальна. В типичном случае даже простого фильтра - десяток условий, ни одно из которых не является обязательным - статика будет несравнимо больше проигрывать на этапе выполнения (cобственно, Oracle даже в этом случае пытается подстраивать планы под разные значения переменных, хотя до идеала тут ещё очень и очень далеко).
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960106
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!уже пережевывали. технология 80х, сегодня в моде cost based оптимизаторы которые с ростом данных подстраивают план под изменяющиеся данные. а тут какой план зашился с тем и жить.Видимо, пережевывали недостаточно. При работе со статикой есть простое правило - после сбора статистики надо пересоздать планы статики (rebind).
Достоинство в том, что эту операцию можно делать по необходимости, например в периоды низкой нагрузки. А если сбора статистики небыло, то и динамика со старой статистикой не будет новые планы генерячить, ибо не с чего.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960131
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerНо, полагаю, не будет неправильным сказать, что статика хороша тогда и только тогда, когда в ней зашита обязательная сильная фильтрация, а переменная часть непринципиальна. В типичном случае даже простого фильтра - десяток условий, ни одно из которых не является обязательным - статика будет несравнимо больше проигрывать на этапе выполнения (cобственно, Oracle даже в этом случае пытается подстраивать планы под разные значения переменных, хотя до идеала тут ещё очень и очень далеко).Ну, в том примере, который я приводил, плпн доступа всегда одинаков - доступ по индексу gid.
В общем, применение статике можно найти, и часто она действительно не подходит или не удобна в применении.
В db2 есть, типа, бест практисиз для этого:
Determining when to execute SQL statements statically or dynamically in embedded SQL applications
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960184
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark BarinsteinВ моём пруфе оно появилось в 1983 (это если дедушку System R не считать):
The Big Picture: IBM DB2 Information Management Software and DB2 Universal Database .
Было бы интересно посмотреть на опровержение этого заблуждения.
не вижу, можно точную цитатку какую именно фразу вы приняли за "появилось" ?

разбор ситуации по оптимизаторам лежит тут
// http://www.dbmsmag.com/9703d15.html

похоже загнулся журнальчик.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960202
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нашел в архиве

dbsmag
Over the last few years, especially as the market trend for data warehousing has really caught on, database vendors have put a great deal of focus on optimizer development. Oracle introduced its cost-based optimizer in Oracle 7.0 and is phasing out the use of rule-based optimization in its product. Gary Hallmark, consulting member of technical staff who focuses primarily on data warehouse issues at Oracle, sees the cost-based optimizer as a key component of Oracle's data warehouse solution with specific features that allow for exploitation of star schema designs, bitmapped indices, and parallel-processing capabilities available with the Oracle Parallel Query option. Hallmark emphasizes the importance of a number of optimization improvements introduced with Oracle 7.3, including "parallel aware'' optimization strategies that enable the optimizer to use parallelism in its execution plans to trade system throughput for better response times on individual queries. Oracle 7.3 also introduced histogrammed statistics for use by the optimizer for better plan generation when skewed data is present within large database tables. The quality of plans generated by Oracle's cost-based optimizer have increased dramatically between Oracle 7.0 and the current 7.3 version of the product, and even further enhancements are expected with the release of Oracle8 later this year.

IBM expects to integrate its advanced research in cost optimization strategies coming out of the Starburst project (undertaken in IBM's Almaden research laboratories in California) into both the MVS and Unix implementations of the DB2 database product. Gilles Fecteau, architect of DB2/6000 Parallel Edition, indicates that customers for this high-end database focused on DSS workloads should see the benefits of the Starburst research in the Common Server implementation of DB2 as early as the first half of 1997. Because the research prototype for IBM's optimizer technology was developed in C++, it will be a much faster path for integrating the advancements into DB2's Common Server database engine (which is also implemented in C++) than will be the case for DB2 on MVS (which is implemented in assembler and PL/X-390).

// http://web.archive.org/web/20071009200716/http://www.dbmsmag.com/9703d15.html

это 1997 год, т.е. os/2 где в это время и подохла ...
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960232
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!Mark BarinsteinВ моём пруфе оно появилось в 1983 (это если дедушку System R не считать):
The Big Picture: IBM DB2 Information Management Software and DB2 Universal Database .
Было бы интересно посмотреть на опровержение этого заблуждения.
не вижу, можно точную цитатку какую именно фразу вы приняли за "появилось" ?

разбор ситуации по оптимизаторам лежит тут
// http://www.dbmsmag.com/9703d15.html

похоже загнулся журнальчик.

A brief history of DB2
A series of research projects have been a steady source of technology for the DB2 family since the beginning :
...
* Cost-based query optimization has been an area of intense effort and innovation ever since the System R days . The R Star project extended the relational model to distributed system environments.
...Смысл следующий:
Cost-based optimizer, появившийся в System R , стал источником технологий для DB2 с самого её начала .
Как ещё по-другому можно интерпретировать эти фразы?
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960299
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbmag
IBM expects to integrate its advanced research in cost optimization strategies coming out of the Starburst project (undertaken in IBM's Almaden research laboratories in California) into both the MVS and Unix implementations of the DB2 database product.Здесь нигде не сказано, что было у db2 rule-based, и после внедрения advanced research оно стало cost-based.
Дословно: " Ожидается, что IBM интегриует своё передовое исследование в cost optimization strategies ".
Как из этого можно было заключить, что было rule-based, а ожидается cost-based?

Вот ещё самоуверенные заявления ibm (там в т.ч. и про cost-based есть)
DB2 Leadership in Business Intelligence
Там заявляется напрямую:
IBMWe invented cost-based optimization for database management systems.
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960345
пгуые123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень интересно повспоминать, когда появился cost-based оптимизатор, но это жить воспоминаниями о прошлом. А как сейчас?
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960379
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!Mark Barinstein
В статике у db2 в рантайме нет:
- sort parse
- hard parse
- проверки авторизаций пользователя на все объекты (не забываем, что оракл тоже должен это делать), используемые в запросе. Проверяется только право execute на пакет, в котором хранятся все статические запросы программы.

уже пережевывали. технология 80х, сегодня в моде cost based оптимизаторы которые с ростом данных подстраивают план под изменяющиеся данные . а тут какой план зашился с тем и жить.
В теории...
...
Рейтинг: 0 / 0
Oracle XE: a five years of no progress
    #36960411
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пгуые123Очень интересно повспоминать, когда появился cost-based оптимизатор, но это жить воспоминаниями о прошлом. А как сейчас?
Да, я тут некий примерчик просил, потому что перерываю ораклячью SQL reference и не понимаю, о чём шла речь.
...
Рейтинг: 0 / 0
25 сообщений из 200, страница 7 из 8
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Oracle XE: a five years of no progress
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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