Net8 Administrator's Guide
Release 8.1.6
Part Number A76933-01
Dedicated Server Model
-----------------------------------------------
Note:
Dedicated server processes require more memory than MTS.
-----------------------------------------------
Все же Оракл должен лучше знать, чем препод с курсов.
>>PGA смотрел per session from v$sesstat. Те самое большое за всю >сессию.
> Я не совсем понял, большое число?
Да, не понятно.
Число было какое я приводил раньше меньше 2 Мб
А PL/SQL особенно не жалую.
Пару месяцев назад я писал тут пример, как OCI сделал то же самое в 10 раз быстрее.
Найти Мах длину строки перебором всех строк, делал все честно читал массивами
и там и там, и не пользуясь разными встроенными вещами ОСИ.
Да конечно меньше MTC использует памяти, я же не спорю, и препод этого не отрицал. Не советовали связываться без крайней необходимости (число юзеров > 1000-1500)
Вопрос как это реализовано. Ну да ладно с ним, с MTCом этим.
>А PL/SQL особенно не жалую.
Этим может объяснятся малое значение в PGA.
Но в реальных проектах без PL/SQL не обойтись.
И это лучший язык для СУБД. Никакая жаба (java) близко не валялась.
Не пойму зачем они ее прикручивают? Нафига козе баян? Тот же билли, да sybase мудрее делают. Базе базово жабе жабово.
PL/SQL надо сделать более шустрым, компилируемым по возможности.
To Nait,
>>Т.к. время раздумий высоко. Это позволяет сбросить, временно, спящую >сессию и использовать
ресурсы для нового соединения/запроса.
>Дык про то и речь,куда же он их сбрасывает? И соответственно откуда потом подымает?
>Просто лишние в своп, потом обратно
========================================
А куда UNIX спящие процессы (в нашем случае dedicated servers) девает? Туда же в своп
У него другого места нет кроме памяти и свопа.
ТОлько там это делает Oracle для MТS работы а здесь UNIX для dedicated.
Так, что здесь тот дядя точно в лужу сел.
И еще другой момент
Dedicated используют PGA (что находится за SGA) больше, а значит может активно свопироваться,
а для MTS часть памяти из PGA уходит в UGA of SGA, а SGA при правильном, конечно, распределении
всегда в shared. Значит своп меньше.
Вот еще один выигрыш, как ни крути.
Oracle
2 Nait
В Sybase ASE 12 поддерживаотся хранимые процедуры на Java.
А вообще, мне больше DB2 нравится :) ИМХО.
А ораклоиды, это практически таже M$, только в базах данных.
For Havoc (*) (2001-03-20 15:41:00.0)
>В Sybase ASE 12 поддерживаотся хранимые процедуры на Java.
Это полноценные SP, как на Transact SQL? Или с боку на сервере приложений?
Правильно вы все пишите, вот мы к этому изящному MTC и подошли вплотную.
Т.е. он юзает своп. Ну а теперь давайте представим 1500 сессий, с использованием хранимых процедур, и со свопом.
Прошу прощения, я писал:
> Oracle рекомендует использовать MTS больше 100-150 сессий.
Oracle imho редко дает такие точные цифры.
Я вспомнил, что читал это в одной книге, а автор писал так
"Одни эксперты советуют использовать MTS больше 100 сессий,
другие больше 150, а я ...." не помню, что он говорил.
Я думаю, что зависит от слишком многого (Hardware, OS, Allplication etc.) и надо проверять и решать для себя.
To Nait,
>Правильно вы все пишите, вот мы к этому изящному MTC и подошли вплотную.
>Т.е. он юзает своп. Ну а теперь давайте представим 1500 сессий, с использованием хранимых процедур, и со свопом.
Я так думаю, а Вы?
Те же Dedicated Servers так же юзают своп, но т.к. MTS требует меньше памяти,
то и своп меньше пользуется, и результат значит, лучше.
2 Nait
Да, это полноценные хранимые процедуры, работющие без участия сервера приложений.
Джаву в хранимых процедурах сейчас очень многие поддерживают, в том числе и IBM.
to anonymous (*) (2001-03-20 22:11:45.0)
>Я так думаю, а Вы?
>
>Те же Dedicated Servers так же юзают своп, но т.к. MTS требует >меньше памяти,
>то и своп меньше пользуется, и результат значит, лучше.
Все так думают, но не все сервера так делают. Своп, это самое жуткое что можно представить для производительности.
Вы спросите Havoc, он Вам объяснит как можно избежать свопа. Повторюсь, что Sybase жрет на сессию(первоначально) 56 КИЛОБАЙТ. Оракл только на стек по умолчанию мегабайт.
to Havoc
>Да, это полноценные хранимые процедуры, работющие без участия >сервера приложений. Джаву в хранимых процедурах сейчас очень многие >поддерживают, в том числе и IBM.
Есть смутное подозрение, что не совсем они полноценные, они выполняются в одном окружении(контексте, процессе) с самим сервером?
Может они сделаны как расширенные SP на C?
А как со скоростью?
Transact SQL очень быстро работал. (Я уже пару лет на оракле, отстал от жизни)
anonymous (*) (2001-03-20 11:31:07.0)
>Irsi - тупой баран и клинический дебил. Вонь от него за#$%$# уже >всех. ИЗБИРАТЕЛЬНОЕ невидение ЯВНЫХ ФАКТОВ и НАГЛАЯ ПРОПАГАНДА
[...]
>мне всегда охота РАЗ$%^ Е#$ЛО, потому что ПОДЛЫЕ они, гады и мерзкие >как мокрицы. А гадов ДАВИТЬ надо.
Шиза косит наши ряды. Модератор, а психов нельзя отфильтровывать?
Роутить в дурдом?
To Nait
> Повторюсь, что Sybase жрет на сессию(первоначально) 56 КИЛОБАЙТ. Оракл только на стек по умолчанию мегабайт.
Про Sybase ничего сказать не могу.
"Про Oracle по умолчанию мегабайт", на мой взгляд, не так,
т.к. PGA для dedicated состотоит из стек и информации сесии (к-я уходит в SGA при MTS)
так вот проверил сейчас PGA для dedicated SQL*Plus
PGA после соединения 80К
PGA после вызова процедур из разных packageй (около 10.000 строк) 500K = стек + информации сесии
Вывод: стек != 1 мегабайт по умолчанию
Учтите, что это на RISC проц-х, где все гораздо больше, чем на Intel
Но согласен, что и это много.
Но для уменьшения количества прямых соединений с Oracle DB, Oracle предлагает
1. Connection Manager на Middle-tier сервере (куда коннектятся userа), а он использует
меньшее количество соединений с сервером, чем сессий, и
2. Connection Concentration сконфигурированное в нашем любимом MTS (и только в нем)
Oracle
To Nait
> Повторюсь, что Sybase жрет на сессию(первоначально) 56 КИЛОБАЙТ. Оракл только на стек по умолчанию мегабайт.
Про Sybase ничего сказать не могу.
"Про Oracle по умолчанию мегабайт", на мой взгляд, не так,
т.к. PGA для dedicated состотоит из стек и информации сесии (к-я уходит в SGA при MTS)
так вот проверил сейчас PGA для dedicated SQL*Plus
PGA после соединения 80К
PGA после вызова процедур из разных packageй (около 10.000 строк) 500K = стек + информации сесии
Вывод: стек != 1 мегабайт по умолчанию
Учтите, что это на RISC проц-х, где все гораздо больше, чем на Intel
Но согласен, что и это много.
Но для уменьшения количества прямых соединений с Oracle DB, Oracle предлагает
1. Connection Manager на Middle-tier сервере (куда коннектятся userа), а он использует
меньшее количество соединений с сервером, чем сессий, и
2. Connection Concentration сконфигурированное в нашем любимом MTS (и только в нем)
Кстати, а с чего это Oracle увольняет почти тысячу сотрудников?
Блин, ну когда же мелкософт начнет увольнять своих, ведь если верить линуксоидам они на гране краха? :)
To Irsi,
И Dymler-Chrysler и Ford и Toyota тоже увольнятют, а ВАЗ - нет,
но ведь это не значит, что машины Dymler-Chrysler и Ford и Toyota хуже ВАЗа.
И потом, увольнять можно тихо, без шума.
Я в не в HR в Microsoft работаю и цифры не знаю.
Товарищи эксперты по БД, а не могли бы вы, пока вы здесь, как-нить охарактеризовать Sybase ASE 11.0.2 (ну тот который на халяву полностью отдают) для линукса или бзди? Вообще, можно ли именно на этой версии делать enterprise solutions (ну для небольших контор) или бесплатный сыр бывает только в мышеловке и эта версия содержит какие-то серьезные из[яны/баги?
Большое спасибо за ответ заранее.
Достоинства для одного типа задач, могут быть недостатками в другой области.
>Уважаемый, Havoc!
>Как можно избежать свопа? (Не прикол, вдруг, что нового узнаю)
Ладно, не будем Havoc'а беспокоить, ему просто скучно отвечать на такой скучный вопрос. Как я объяснял Sybase многопоточный сервер и он НЕ ЗАПУСКАЕТ юниксоидные процессы для сессий. Использует потоки, причем внутеннюю реализацию (так раньше было). Если бы внимательно читали предыдущие сообщения вопроса бы не возникло.
Оракл для NT, кстати, тоже использует потоки, но потоки NT.
Посему если кидать в своп, то весь сервер(!), что как сами понимаете
не рулезно. В худшем случае пэйджинг. Но и это будет случаться редко, потому как (см. выше) Sybase памяти жрет мало(на сессию).
Анонимус, вы на правильном пути, даю вам хорошую ссылку -http://www.ixora.com.au/, лучше там это все почитать и не засорять тут эху техническими подробностями.
Оракл хороший продукт, наверное лучший среди реляционок, никто с вами не спорит. Просто есть и недостатки, а в некоторых случаях и достоинтва являются недостатками(многоверсионность и OLTP).
Издержки на память - плата за самое удобное процедурное расширение SQL - PL/SQL. Вот сделают они его бог даст компилируемым в девятке, тогда вообще ораклу цены не будет. Наряду с использованием Resource Manager можно будет весь средний слой делать на сервере.
А? Чего? А вы о свопе, а то я пропустил момент, где меня просили.
На самом деле все просто. Считаешь, сколько памяти можно отдать под Sybase, чтобы не вгонять его в своп, конфигуришь и перезапускаешь.
Хотя можно назапускать других приблуд и есть вероятность, что часть его памяти таки в своп да вылезет.
Но на этот случай есть полезная опция лочить зашаренную память, и тогда в своп может вытесниться кто угодно, но только не Sybase.
Я подразумеваю dataserver (который собственно и есть СУБД), а для backup и monitor серверов это не нужно. Их даже запускать можно по необходимости.
О ХП на Java. Внешний JDK все таки нужен, как и для Оракла с DB2.
Конечно, Java лучше пускать на Application сервере, но не всегда его применение оправдано.
Полностью на халяву отдают 11.0.3, а 11.9.2 - free for development.
Нормальный сервер, в однопроцессорном варианте может работать шустрее, чем 11.9.2, в котором убрали поддержку raw устройств.
Но учти, что в бесплатных версиях нету Sybase Character Sets (это если надо будет сортировки по русским словам делать, я их все таки нашел),
Extended SP (нету хранимых процедур на С), Remote SQL (к другому серверу фиг обратишься).
Также, если поставишь, найти в инете ctsql (это терминал, только более приятный, чем родной).
Havoc (*) (2001-03-22 10:56:40.0)
>На самом деле все просто. Считаешь, сколько памяти можно отдать под >Sybase, чтобы не вгонять его в своп, конфигуришь и перезапускаешь.
При этом происходит пэйджинг, т.е. в своп летит не весь Sybase, а какие-то наиболее старые страницы.
Нет ну это ясно, анонимус, никак не въедет, что юзерские сессии в Sybase работает в одном процессе с сервером. Я точно также офигевал, когда узрел, что оракл плодит ОТДЕЛЬНЫЕ ЮНИКСОИДНЫЕ ПРОЦЕССЫ на каждую сессию. А если включить паралеллизм, то и по нескольку процессов на сессию.
To Nait,
что юзерские сессии в Sybase работает в одном процессе с сервером. Я точно также офигевал, когда узрел, что оракл плодит ОТДЕЛЬНЫЕ ЮНИКСОИДНЫЕ ПРОЦЕССЫ на каждую сессию
==============================================
Oracle использует возможности OS, и дело тут в OS, a не в Oracle.
Open VMS поддерживает для Oracle юзерские сессии одном процессе с сервером
(называется это Single-task), а UNIX нет. Наверное на Oracle не дурнее, чем на Sybase,
и если это лучше, то сделали бы.
И опять, за рыбу деньги, Oracle не плодит ОТДЕЛЬНЫЕ ЮНИКСОИДНЫЕ ПРОЦЕССЫ на каждую сессию при использовании MTS.
> Sybase памяти жрет мало(на сессию).
Это не показатель для RDBMS.
"Нива" ВАЗ тоже экономичнее, чем Lincoln Navigator, но не есть лучше, я бы предпочел второе.
> недостатками(многоверсионность
А как иначе, Вы бы хотели видеть результат незавершенных транзакций?
Я бы нет.
>Oracle использует возможности OS, и дело тут в OS, a не в Oracle.
>
>Open VMS поддерживает для Oracle юзерские сессии одном процессе с >сервером (называется это Single-task), а UNIX нет. Наверное на >Oracle не дурнее, чем на Sybase, и если это лучше, то сделали бы.
Оракл, очень консервативен. Они не глупее или умнее.
Просто когда они ваяли Оракл под Юникс, в последнем НЕ БЫЛО ПОТОКОВ.
А переделывать им в ломы.
>И опять, за рыбу деньги, Oracle не плодит ОТДЕЛЬНЫЕ ЮНИКСОИДНЫЕ >ПРОЦЕССЫ на каждую сессию при использовании MTS.
У вас странно логика работает. Мы же выяснили уже, что он плодит их,
но их число ограничено, и если не хватает для других сессий, он их сбрасывает в своп, цепляет нового юзверя, они и называются разделяемыми серверными процессами. Т.е. делает не пэйджинг, а совсем плохую и устаревшую вещь - своппинг процессов(разные знаете ли вещи).Улучшение - информация о сеансе хранится в разделяемом пуле(точнее в UGA). В том и кривость MTC. Серверные процессы никто не отменял.
Я думал вы уже просекли этот момент.
>> Sybase памяти жрет мало(на сессию).
>Это не показатель для RDBMS.
>"Нива" ВАЗ тоже экономичнее, чем Lincoln Navigator, но не есть >лучше, я бы предпочел второе.
Целиком согласен, золотые слова. А кому-то нужен K-700, причем, даже чтобы за спичками съездить. Надеюсь ясно о чем речь.
Например, ни разу не видел онлайнового биллинга(систем работающих с телекоммуникационными железками) от серьезных западных фирм на Оракл, везде Sybase.
Re: MS SQL и тесты производительности...
To Nait,
что юзерские сессии в Sybase работает в одном процессе с сервером. Я точно также офигевал, когда узрел, что оракл плодит ОТДЕЛЬНЫЕ ЮНИКСОИДНЫЕ ПРОЦЕССЫ на каждую сессию
==============================================
Oracle использует возможности OS, и дело тут в OS, a не в Oracle.
Open VMS поддерживает для Oracle юзерские сессии одном процессе с сервером
(называется это Single-task), а UNIX нет. Наверное на Oracle не дурнее, чем на Sybase,
и если это лучше, то сделали бы.
И опять, за рыбу деньги, Oracle не плодит ОТДЕЛЬНЫЕ ЮНИКСОИДНЫЕ ПРОЦЕССЫ на каждую сессию при использовании MTS.
> Sybase памяти жрет мало(на сессию).
Это не показатель для RDBMS.
"Нива" ВАЗ тоже экономичнее, чем Lincoln Navigator, но не есть лучше, я бы предпочел второе.
>> недостатками(многоверсионность
>А как иначе, Вы бы хотели видеть результат незавершенных транзакций?
>Я бы нет.
Да с вами не просто. Похоже кроме Оракла и Access вы ничего не щупали.
Да и об основных концепциях оракла у вас смутные предстовления.
Многоверсионность создана не для того чтобы не видеть результаты незакоммиченных транзакций, а для того чтобы не видеть результаты ЗАКОМИЧЕННЫХ ТРАНЗАКЦИЙ ПОСЛЕ ЗАПУСКА ВАШЕГО ЗАПРОСА.
Например, запускаете вы большую выборку, ПОСЛЕ этого я по ключевому
полю делаю UPDATE одной строки(с коммитом), далее ваш запрос доходит
до этой, закоммиченной мной строки, но оракл дернет из ролбэка не новое значение, а старое, которое было на момент запуска вашего запроса. Это называется консистентным(согласованным) чтением, на которое естественно есть накладные расходы. Вот этого мне в OLTP И не надо.
To anonymous (*) (2001-03-23 04:03:24.0)
>Спасибо, за ссылку, интересная, если есть еще какие, буду рад.
Очень рекомендую сначала прочитать Oracle Concepts. Родная дока,
к тому же там очень простой английский.
>
>Oracle
А по-чему вы подписываетесь Oracle?
То Найт,
Достали Вы меня, вначале крутились про MTS,
мол, де свопируются а dedicated, якобы, нет.
И что это за вообще манера оскорблять других
? Похоже кроме Оракла и Access вы ничего не щупали.
? Очень рекомендую сначала прочитать Oracle Concepts.
Вы про меня ничего и не знаете, а пытаетесь что-то утверждать.
Кого и когда я щупал не ваше дело
Внимание, Ваше утверждение?
==============
Многоверсионность создана не для того чтобы не видеть результаты незакоммиченных транзакций, а для того чтобы не видеть результаты ЗАКОМИЧЕННЫХ ТРАНЗАКЦИЙ ПОСЛЕ ЗАПУСКА ВАШЕГО ЗАПРОСА.
Теперь цитата из
Steve Bobrowski
Oracle8 Architecture Oracle Press Osborne/McGraw-Hill ISBN 0-07-882274-2
Русский вариант Издательство ⌠Лори■ ISBN 5-85582-040-8
Цитата из русского варианта, это на тот случай, что с Вас станется, и заявите, что
я и английского тоже не знаю и перевел неправильно.
Стр 148
Независимо от длительности транзакций Oracle скрывает изменения, внесенные НЕЗАВЕРШЕННЫМИ и завершенными транзакциями после начала выполнения
оператора.
В Oracle это можно сделать без использования блокировки данных, при помощи
уникального алгоритма многовариантности (multiversionning).
----------------------------
Слышали про такого как Steve Bobrowski, или, не авторитет, скажете,
вот препод с курсов это да, а это ⌠тупой американец■?
Oracle подписываюсь (А что нельзя?), т.к. люблю я его родимого, да и кормилец мой.
Вы с Ораклом пару лет, я читал, а я в несколько раз поболе того будет.
А что читать, то не плохо бы Вам самому прочитать для начала Oracle Concepts,
или каку-другу литературу про Oracle, а потом других учить пытаться, если уж
любите это дело.
Люблю я Окуджаву, так вот в песне одной:
⌠Умный любит учиться, а ****** учить■
Наверное, я умный, если учиться хочу, и ссылки еще поэтому просил.
Ведь только умный человек может понимать, как много он еще
не знает.
То Найт,
( маленькая коррекция предыдущего выделены кто, что сказал для ясности)
Достали Вы меня, вначале крутились про MTS,
мол, де свопируются а dedicated, якобы, нет.
И что это за вообще манера оскорблять других
? Похоже кроме Оракла и Access вы ничего не щупали.
? Очень рекомендую сначала прочитать Oracle Concepts.
Вы про меня ничего и не знаете, а пытаетесь что-то утверждать.
Кого и когда я щупал не ваше дело
Внимание, Ваше утверждение?
==============
Многоверсионность создана не для того чтобы не видеть результаты незакоммиченных транзакций, а для того чтобы не видеть результаты ЗАКОМИЧЕННЫХ ТРАНЗАКЦИЙ ПОСЛЕ ЗАПУСКА ВАШЕГО ЗАПРОСА.
==============
Теперь цитата из
Steve Bobrowski
Oracle8 Architecture Oracle Press Osborne/McGraw-Hill ISBN 0-07-882274-2
Русский вариант Издательство ⌠Лори■ ISBN 5-85582-040-8
Цитата из русского варианта, это на тот случай, что с Вас станется, и заявите, что
я и английского тоже не знаю и перевел неправильно.
Стр 148
----------------------------
Независимо от длительности транзакций Oracle скрывает изменения, внесенные НЕЗАВЕРШЕННЫМИ и завершенными транзакциями после начала выполнения
оператора.
В Oracle это можно сделать без использования блокировки данных, при помощи
уникального алгоритма многовариантности (multiversionning).
----------------------------
Слышали про такого как Steve Bobrowski, или, не авторитет, скажете,
вот препод с курсов это да, а это ⌠тупой американец■?
Oracle подписываюсь (А что нельзя?), т.к. люблю я его родимого, да и кормилец мой.
Вы с Ораклом пару лет, я читал, а я в несколько раз поболе того будет.
А что читать, то не плохо бы Вам самому прочитать для начала Oracle Concepts,
или каку-другу литературу про Oracle, а потом других учить пытаться, если уж
любите это дело.
Люблю я Окуджаву, так вот в песне одной:
⌠Умный любит учиться, а ****** учить■
Наверное, я умный, если учиться хочу, и ссылки еще поэтому просил.
Ведь только умный человек может понимать, как много он еще
не знает.
for anonymous (*) (2001-03-23 18:20:49.0
Количество лет только в армии идет в зачет, даже медали дают.
Но медалями за выслугу лет обычно не звенят.
Господин хороший, я ничуть не ошибся, ни насчет юниксоидных сессий
в MTC, ни насчет многоверсионности. В случае MTC UGA содержит собственную область SQL, но стек-то остается в PGA и серверные процессы не отменяются(а в Sybase/MSSQL их вообще нет, т.е.нет PGA в понятиях Оракл на Юникс).
Основная задача системы многоверсионности именно та, что я описал.
- Не показывать закоммиченные после запуска запроса строки.
Плюс еще чтение не мешает update и наоборот(в Ынифыу мешают онидруг другу, но не надолго, очень короткие блокировки) .
Т.е. сколько бы юзверей не запустили отчеты, все получат данные на МОМЕНТ запуска этих отчетов. В системах без поддержки многоверсионности это практически не возможно(будут большие блогировки). Но во всех СУБД по умолчанию не поддерживается грязное чтение. Вы сами подумайте, чтобы это были за СУБД?
>> недостатками(многоверсионность
>А как иначе, Вы бы хотели видеть результат незавершенных транзакций?
>Я бы нет.
Так вот, для того чтобы не видеть не завершенных транзакций совершенно не нужно наворачивать систему многоверсионности. И MSSQL и Sybase Обходятся одним журналом транзакций(в оракле фактически два журнала транзакций -рол/редо) и блокировками. О чем вам и было сказано. И объяснено для чего ее сделали - для поддержки согласованного чтения. Чем вы слушаете? Было же написано, что для ОЛТП систем не нужна система многоверсионности(издержки на ролбэки), а вы из этого делаете вывод, что будут видны результаты незакоммиченных транзакций.
Повторюсь, запрет грязного чтения есть и в системах без многоверсионности, в любой СУБД.
>Ну че Nait, так у кого ⌠смутные представления об основных концепциях >оракла■?
>И правда, не знаешь, так молчал бы.
>Людей с понтолыку сводишь.
Да у него каша в голове. С понтолыку его сбиваю.
>
>Молодец, Oracle, так их, "знатоков" хреновых.
Еще один анонимус, ну что тут скажешь?
Пожалуй скажу - САМ СОБАКА.
>Достали Вы меня, вначале крутились про MTS,
>мол, де свопируются а dedicated, якобы, нет.
Я такого не говорил, я говорил, что MTS это подкрашенный выделенный сервер, и лишние серверные процессы кидает в своп(возможно даже принудительно, неактивные сессии- надо проверить, т.е. возможно, он своп юзает чаще чем выделенный, даже если памяти в системе достаточно). Выделенный тоже так делает, когда ему не хватает памяти. Просто поразительно,как на разных языках говорим. Пытаюсь вам втолковать, что Sybase этого не делает, потому что нет у него серверных процессов, я на этом заостряю внимание. Sybase не использует своппинг, только пэйджинг.
Справедливости ради, надо сказать, что несколько раз я пользовался тем, что можно по сессии найти юниксоидный процесс. Иногда это очень удобно.
А вы кто, крупный теоретик в области БД
Привел же я пример из Стива Бобровски
----------------------------
Независимо от длительности транзакций Oracle скрывает изменения, внесенные НЕЗАВЕРШЕННЫМИ и завершенными транзакциями после начала выполнения
оператора.
В Oracle это можно сделать без использования блокировки данных, при помощи
уникального алгоритма многовариантности (multiversionning).
----------------------------
Я думаю, что у него опыта и весу в мире БД поболее вашего будет,
и не надо передергивать и крутиться теперь.
Я уточняю, что Вы именно указали на мое незнание основ Оракла что
Ваше заявление?
----------------------------
Да с вами не просто. Похоже кроме Оракла и Access вы ничего не щупали.
Да и об основных концепциях оракла у вас смутные предстовления.
Многоверсионность создана не для того чтобы не видеть результаты незакоммиченных транзакций, а для того чтобы не видеть результаты ЗАКОМИЧЕННЫХ ТРАНЗАКЦИЙ ПОСЛЕ ЗАПУСКА ВАШЕГО ЗАПРОСА.
----------------------------
Я привел пример опровергающий это, и где же, ⌠Извините, был не прав?■
Не нравиться Стив Бобровски, считаете себя умнее, будьте любезны.
Как насчет этого?
Oracle8i Concepts
Release 2 (8.1.6)
A76965-01
Oracle gives the application developer a choice of two transaction isolation levels with different characteristics. Both the READ COMMITED and SERIALIZABLE isolation levels provide a high degree of consistency and concurrency. Both levels provide the contention-reducing benefits of Oracle's read consistency MULTIVERSION concurrency control model.
Из двух частей она состоит, вы вначале заявили, что из одной,
т.е. отвергнув целиком мое утверждение.
Ваше заявление?
----------------------------------------------
Многоверсионность создана не для того чтобы не видеть результаты незакоммиченных транзакций.
-----------------------------------
Потом начали уже говорить, что уже одна часть важнее, чем другая.
Ваше заявление?
----------------------------------
Основная задача системы многоверсионности именно та, что я описал.
- Не показывать закоммиченные после запуска запроса строки.
----------------------------------
Как в анекдоте про крокодилов: ⌠Летают, но низенько■
Так у кого каша в голове, или вообще не в порядке с логикой?
Так же большим знатоком Оракла (не важно сколько лет занимаюсь, мол де знаток и все)
показывает Вас это утверждение
----------------------------
Оракл только на стек по умолчанию мегабайт.
----------------------------
Я же писал, что при присоединении к Ораклу на РИСКе вся
PGA (стек+сеесионные вещи) 80К.
Да охренительно больше чем Sybase там 56К, а сколько у него на РИСКе будет?
Ваша беда в том, что Вы себя считаете умнее других и посему считаете свою
точку зрения истиной в последней инстанции. Извините, но не все ее разделяют.
2Nait
>Пожалуй скажу - САМ СОБАКА.
Хамишь, парниша.
>Количество лет только в армии идет в зачет
Не только в армии:
1. На зоне, чем больше отмотал, тем быстрее откинешься
2. Еще в резюме, чем больше опыт, тем ценнее и зарплата выше.
А ты со своим может для бегинера и сойдешь, хотя и сильно думать буду.
Хамоват больно.
Re: MS SQL и тесты производительности...
>>Пожалуй скажу - САМ СОБАКА.
>Хамишь, парниша.
Ну, да мне надо было более вежливо отреагировать на это:
>>Молодец, Oracle, так их, "знатоков" хреновых.
>Еще один анонимус, ну что тут скажешь?
>Пожалуй скажу - САМ СОБАКА.
Извиняюсь, надо было сказать - сам ХРЕНОВЫЙ мастер.
Я отзывчивый, на вежливость, так сказать,вежливостью.
Хотя в целом Вы пожалуй правы. Не стоило грубить.
>>Количество лет только в армии идет в зачет
>Не только в армии:
>1. На зоне, чем больше отмотал, тем быстрее откинешься
Ну, тут без коментариев. Такие идеалы ...
Окуджава говоришь? Мне он тоже нравится, и не симпатичны те, кто крутит тупой блатняк.
>2. Еще в резюме, чем больше опыт, тем ценнее и зарплата выше.
>А ты со своим может для бегинера и сойдешь, хотя и сильно думать >буду. Хамоват больно.
Мне, со своим CV, никуда ходить не надо, я сам людей на работу принимаю. При этом конечно смотрю на стаж и сертификаты, но не долго,
это не очень интересно. Задаю пару тройку вопросов и мне сразу ясно с кем имею дело.
Если ищем DBA, то могу спросить например,
для чего Оракл реализовал систему многоверсионности?
Что происходит по checkpoint(общий механизм для всех СУБД) в базе?
Что происходит по COMMIT?
Куда и в какой последовательности записывает данные серверный процесс?
Если кандидат начинает лапотать, что многоверсионность(для чего она вводилась указывает само название) была введена для запрета грязного чтения,
>>Оракл хороший продукт, наверное лучший среди реляционок, никто с >>вами не спорит. Просто есть и недостатки, а в некоторых случаях и >>достоинтва являются недостатками(многоверсионность и OLTP).
>А как иначе, Вы бы хотели видеть результат незавершенных транзакций?
>Я бы нет.
то следующие вопросы не задаю(кстати, нехорошо выдергивать контекст сообщений) OLTP(sybase) системы не используют многоверсионность и с грязным чтением у них все в порядке, и с реактивностью тоже.
Если говорят, что по COMMIT, ORACLE пишет данные в tablespace к которому приписана таблица (для программера этот бред более простителен), то как вы уже догадались, следующий вопрос не задается.
Для многих программеров со стажем (и в крутых наколках :)) убийственным является вопрос о создании запроса к таблице dept, выдающем отчет о отделах, в которых число служащих превышает заданное число(номер отдела - кол-во служащих), или о однофомильцах в таблице emp (кто имеет более одного однофамильца), одним запросом без вложенных select'ов. Т.е. не знают элементарных запросов с группировкой( а пальцы веером, сопли пузырем...) .
Что будет, если не делать долгое время COMMIT в пакетной транзакции обновляющей данные?
Такие дела. 95-98% не проходят такое элементарное тестирование. Причем практически нет связи со стажем (не беру выпускников).
Наш диспут ушел не в ту сторону. Я нигде не говорил о том, что Оракл сакс, нигде. Просто для каждой задачи надо выбирать соответствующий инструмент. И Оракл не всегда оправданный выбор (бухгалтерия, онлайновые системы, встроенные системы,- ...за спичками едешь или за угольком, быстро надо с места рвануть или можно не спешить).
Вообще, эта тема высосана из пальца. Нормальная у MS SQL производительность, достаточная для большинства задач, и надежность достаточная (версия 4.21 была практически не работоспособна, и большинство баек идут из тех времен(1994г. 4.21-6.0)). Кроме того MSSQL удобен разработчикам и прост в эксплуатации(та же база бухгалтерии на SCALA/MSSQL во многих конторах пашет вообще без DBA).
У Оракла тоже бывают баги. Например, был очень серьезный баг в запросах использующих индексы. Т.е. когда оптимизатор начинал использовать индекс, и без него результаты получались разные.
Два запроса давали разные результаты:
SELECT count(*)
FROM anytable
WHERE field = 100
ORDER by starttime
0
SELECT count(*)
FROM anytable
WHERE field = 100
65656
И этот серьезный баг, в версии 7.3 висел не один месяц (по-моему его год с исправляли). Ну, а если почитать список багфиксов в последних ораклоидных версиях, то Билли вообще ангелом покажется. Т.е. Оракл с MS догоняют друг друга(навстречу так сказать - у MSSQL становиться меньше дырок, ну а у оракла больше соответственно).
Например, ВЕСЬ сервер 8.1.6 рюхается если убиваешь сессию занятую truncate table. Такого даже билли не умеет.
Вопрос насчет стека, если интересно, обсудим позже, 1-2 недели буду сильно загружен.
(Так между прочим, про Окуджаву писал я, а где о собаке, то кто-то другой)
>Если кандидат начинает лапотать, что многоверсионность(для чего она вводилась указывает само название) была введена для запрета грязного чтения,
Я оно, конечно, сильно извиняюсь, но не надо пытаться выгородить себя
Вопрос в этой дискуссии никогда не стоял ДЛЯ ЧЕГО ВВОДИЛАСЬ МНОГОВАРИАНТНОСТЬ (или монговерсионность).
Вами было заявлено, Что
1. многверсионность является недостатком
------------------------
Просто есть и недостатки (у Оракла), а в некоторых случаях и достоинтва являются недостатками(монговерсионность и OLTP).
------------------------
2. На что я заявил, что она позволяет не видеть результата незавершенных транзакций
3. Далее вы заявили, что
------------------------
монговерсионность создана НЕ ДЛЯ ТОГО чтобы не видеть результаты незакоммиченных транзакций
------------------------
На что Я привел, цитату, что В алгоритм многоверсионности входит и игнорирование
Незавершенных транзакций.
Резюмируя, ваше заявление, выходит, что недостатком Оракла является то, что
он не позволяет видеть результата незавершенных транзакций.
Вот собственно и все, т.е. вы просто не знали,
что такое мультиверсионность, и что она состоит из двух частей.
А уж если вообще придерживаться терминологии БД (не относящейся только к Ораклу),
то, что вы называете монговерсионностью:
----------------------------
Основная задача системы многоверсионности именно та, что я описал.
- Не показывать закоммиченные после запуска запроса строки.
----------------------------
называется уровнем изоляции (isolation level).
Цитата:
********************
Isolation level определяет, могут ли операторы транзакции видеть результаты
других одновременно выполняемых незавершенных и/или завершенных транзакций.
********************
А уж алгоритм многовариантности реализует два различных уровня изоляции.
Впрочем, если есть желание, предлагаю поспорить на эту тему со Стивом Бобровски,
Объяснить ему, что он не прав. Мне уже времени жалко.
Если есть желание продолжить дискуссию по теме вашего,
мягко сказать, неточного заявления:
-----------------------------
Оракл только на стек по умолчанию мегабайт.
-----------------------------
Прошу привести документально подтвержденные, чем нибудь сведения.
Может быть инициализационными параметрами, может быть ссылкой на раздел
Оракл документации. Что есть это за умолчание - Оракл установил?
В общем, раз так заявляете, значит, сами знаете, как, я надеюсь, доказать.
Только не надо приводить данные из статей создателей какой-нибудь системы
какого-нибудь банка.
А баги у всех есть и всегда будут, и у Оракла я видел нарушение
уникальности уникального индекса индекса.
И сам я в иногда ошибки делаю.
Может некоторые мои ошибки так и живут еще.
Главное, что Оракл их находит и исправляет, не стесняется признать это.
Вот вы, например, не захотели признать, что были не правы.
А я не считаю это зазорным, это не задевает мою честь, даже наоборот
честь гораздо больше будет задета, если струсил признаться в ошибке.
Ну бог с этим, понятия о чести сечас у многих,но, к счастью, у не всех, разные и зависят от обстоятельств.
А если я втихаря править буду или замалчивать
и кричать на каждом углу, что смотрите, у меня меньше ошибок
чем у конкурента, значит я лучше?
А MS судя по исходу этой темы просто замалчивает, и не только баги, а даже более мелкие факты. И из всего тут написанного, я больше
всего верю представителю WallsFargo, как MS не потянул на продакшн.
Забыл, про тестирование на собеседовании,
Вопросы на фундаментальные темы не показывают возможностей претендента.
Уже замечено, просто предлагаю посмотреть одену из видеолекций по
Oracle Certified Profeccional Exam на technet.oracle.com. Точно не помню, но кажется по SQL PL/SQL.
Так там лектор говорит, что тесты и реальная жизнь большая разница.
Люди ничего не имеющие опыт и вызубрившие экзамен не много смогут сделать в реальности, и спецы с реальным практическим опытом, не просто просидевшие рядом с сервером где работает та или иная БД, могут провалить тест.
Ну не приходится человеку каждый день читать, что происходит при checkpointe.
Читал когда то может уже и много лет назад, да и зачем оно ему теперь?
Это поможет ему качественне нарисать скрипт для RMAN или Intelegent Agent для восстановления?
А уж я 100% уверен, что человек блестяще прошедший тест, но без опыта, знаю таких
вообще ничего не напишет, это только руками и временем достигается.
2 Oracle
Да не хвалите Вы так версионность.
Спор о версионности vs блокировками не первый год идет.
У всего есть свои сильные и слабые стороны.
А про то что оракл не позволяет видеть результаты незакоммиченных транзакций, так кто это позволяет?
Только Access, MySQL, ну еще кое что примрно такого же уровня.
To Havoc,
Я не хвалю и не ругаю многоверсионность.
Просто мое заявление, что многоверсионность не позволяет видеть результаты незакоммиченных транзакций, было осмеяно и опровергнуто.
> А про то что оракл не позволяет видеть результаты незакоммиченных транзакций, так кто это позволяет?
я про это ничего не писал, что только Oracle такой "крутой".
to Oracle :
>> А MS судя по исходу этой темы просто замалчивает, и не только
>>баги, а даже более мелкие факты. И из всего тут написанного,
>>я больше всего верю представителю WallsFargo, как MS не потянул
>>на продакшн.
а че, я ниче :)
собственно я сам регулярно пользую Win (особенно если поиграться хочется)
и часто логичнее поставить Win, чем unix, или beos
но часто - это далеко не всегда. и до рынка middleware винде еще далеко
как и до рынка кластерных систем и систем с распределенной обработкой данных
Хочу добавить
Эксибанк родил приложение на WinNT 4.0 + MsSql 6.5 и толкает его в пограничные таможни, если вы не знаете какие очереди съездите в Финляндию через т\п, когда создается бальшая очередь таможенники возвращаются в старую программу на ДОС + Clipper.
Мне кажется, что MS SQL меньше всего виноват в очередях на таможне.
Все намного проще. Дал денежку, поехал быстро, не дал - можешь несколько дней ждать.
Очереди были и до того, как там MS SQL внедрили.
>Irsi - ты мудло каких свет не видывал, странно что тебе еще руки не >оторвали
Хозяин есть у сайта? Зачем оставлять на сайте такие сообщения?
Больных людей сейчас много, шиза косит ряды. Почему мы должны
выслушивать агрессивный бред люмпенствующих недоделышей?
Тем более irsi почти не учавствовал в этом обсуждении.
>Мне кажется, что MS SQL меньше всего виноват в очередях на таможне.
>Все намного проще. Дал денежку, поехал быстро, не дал - можешь >несколько дней ждать.
>Очереди были и до того, как там MS SQL внедрили.
Да, таможне за державу нынче не обидно, но есть тут и другой момент.
Т.е. я допускаю более медленную работу новой версии системы на MSSQL,
но уверяю вас, точно также было бы и на Informix, Oracle, Sybase, в случае, если предыдущая версия системы была на клиппере. Удивлятся не приходится - типичная ситуация. Разработчикам надо набраться опыта, на это уходит пара-тройка лет. Первые версии будут тормозить и глюкать. Слишком разный подход в файл-серверных(десктопных-кухонных) системах и в системах с архитектурой клиент-сервер.
Таже SCALA написана без учета SQL'ных реалий, хотя и перешла на MS SQL с более серьезной системы. Опять же главная опция DIRECT HAND.
>To Havoc
>Oracle не поддерживает dirty read.
>Только эти уровни изоляции
>read commited
>serializable
>read only
>Oracle
Поведение Оракла по умолчанию сильно отличается от других СУБД.
Опять же благодаря введению системы многоверсионности.
В sybase/mssql читающая транзакция блокирует читаемый блок/строку/(эскалация на таблицу если большая выборка)- в него/нее нельзя писать. Пишущая тоже блокирует и не дает прочитать строку.
В Оракле нельзя так заблокировать строку, чтобы ее нельзя было прочитать другой сессии (иногда это мешает, но в основном рулезно).
Соответственно, дефолтный ораклоидный режим read commited тоже отличается от стандарта (в лучшую сторону).
Обычно никто не использует serializable, для длинных отчетов, состоящих из многих запросов сериализуемость достигается переводом сессии/транзакции в read only.