Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7 8 9 10 .. 23   вперед  Ctrl
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Критика статьи. Про версионность.

До 2005 версии основным камнем в огород MS SQL от сторонников Oracle было: "Ну фу... читатели мешают писателям!!!". Сделали в MS SQL READ COMMITED с поддержкой версионности (который включается опцией бд READ_COMMITTED_SNAPSHOT). Опять не так и не то. Обратите внимание - это касается читателей. Все остальное работает как у обычного блокировочника. Причем tempdb используется по минимому (не путать с опцией ALLOW_SNAPSHOT_ISOLATION для поддержки уровня изоляции SNAPSHOT). Причем даже при установленной этой опции можно использовать хинт READCOMMITTEDLOCK который "отключает" версионность для определенной таблицы и заставляет накладывать разделяемые блокировки (стандартное поведение READ COMMITED в MS SQL). Считаю эту фичу довольнотаки гибкой.

Так что высказывание:

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


Выглядит безапеляционным.

из статьи
однако некоторые архитектурные решения в mssql отличаются от подхода в оракле. В mssql версии строк хранятся в tempdb, в то время как в оракле в отдельной структуре сегментов отката (в оракле для отдельных транзакций можно создавать отдельные сегменты отката ). Tempdb часто становится головной болью администратора mssql и без версионности, проблеме i/o в tempdb на msdn посвещена не одна нота т.к. там помимо временных таблиц и табличных переменных хранятся сортировки и курсоры. Добавление в tempdb еще и версий строк делает и без того перегруженый tempdb узким местом в системе.


Ну что, теперь "ну фу..." уже не скажешь. Полезем, значит, в детали реализации... Как здесь любят говорит: "Вам шашечки или ехать"?! Хотите использовать версионность - позаботьтесь о размещении tempdb на "шустром устройстве". И методы оптимизации работы с tempdb (особенно на многопроцессорных платформах очень хорошо расписаны в KB).

Yo!!
дальше - темпдб это одна табличка в которую пишут все транзакции, как вы думаете где будет узкое место ? в оракле я могу транзакции указать отдельный сегмент отката, могу распараллелить на несколько дисков. т.е. Юконовская версионость сделана для галочки и полезной нагрузку врятле сможет потянуть.


tempdb - это не табличка, а база данных в терминах MS SQL, которую так же можно располагать на нескольких файловых группах, которые в свою очередь можно располагать на нескольких файлах, которые можно располагать на нескольких дисках. Так что достич требуемой пропускной способности tempdb зная нагрузку на нее не составит большого труда.

Цитата Yo!! взята отсюда: Различия в работе версионных механизмов в Oracle и Yukon

От туда же:

Yo!!
от того что ты уское место поделишь на несколько еще более узких, он шире не станет.


Неверный вывод! из нескольких узких мест получится одно широкое.

Мое "выступление" касается только выводов сделанных в статье. Остальное обсуждение различий механизмов версионности можно посмотреть по ссылке выше.
24 янв 07, 12:55    [3686702]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
2 softwarer

Меня интересует вопрос следующего плана (я этого действительно не знаю). Warehouse Builder - это инструмент из стандартной поставки Oracle? Какой редакции? Если нет, то сколько стоит?

Для сравнения DTS(в 2000)\SSIS(в 2005) входят в комплект всех версий, исключая Express.
24 янв 07, 13:00    [3686754]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
andy st
Member

Откуда:
Сообщений: 899
softwarer

andy st
дежурному проще перезапустить программу. если кач на сервере и косяки там - однозначано привезут админа или разработчика... особенно "приятно" это бывает в 01:15 1 января.

То есть пошел рассказ про неграмотность. Что собственно есть основная причина - "программу на дельфе" пишут не потому, что это разумно, а потому, что ничего другого не знают.

хез... может быть...

softwarer

andy st
собственно это актуально и для mssql, но мне практически удалось свести к 0 вызовы путем написания кучи софтин (понятных для интеллектуалов уровня зубной щетки) по мониторингу и перезапуску серверных служб.

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

удар мимо. для mssql такие средства тоже есть. я думаю, что для оракловых джобов тоже что-то есть. одна проблема - грамотность дежурного персонала и текучка кадров.
но к субд это мало отношения имеет :)
softwarer

andy st
да хез... может и нету никаких проблем. но никто об этод однозначно скзать не может.

Я могу сказать совершенно однозначно. "Любой ODBC-драйвер или OLE DB провайдер" можно подключить к Oracle как к базе. Следовательно любой работающий с базой инструмент может работать и с ними. Это настолько очевидно, что вряд ли об этом каждый раз специально упоминают. Хотя если об этом не говорится в документе "для неграмотных выбирающих", это конечно недоработка маркетологов.

про OLE DB провайдер это сильно. особенно если оракул крутится под линухом или чем-нибудь еще более экзотичным.
24 янв 07, 13:08    [3686851]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
DimaR
Member

Откуда:
Сообщений: 1570
andy st
особенно если оракул крутится под линухом или чем-нибудь еще более экзотичным.


Насколько мне известно у mssql с этим еще хуже
24 янв 07, 13:10    [3686879]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67463
Блог
pkarklin
Меня интересует вопрос следующего плана (я этого действительно не знаю). Warehouse Builder - это инструмент из стандартной поставки Oracle? Какой редакции? Если нет, то сколько стоит?

Если всерьез, то я этого тоже не знаю :) Работа в платиновом партнере имеет свои преимущества в этом смысле. Когда-то он входил в состав Oracle Developer Suite, сейчас - надо смотреть.

pkarklin
Для сравнения DTS(в 2000)\SSIS(в 2005) входят в комплект всех версий, исключая Express.

Ээ.... мы сравниваем фичи или идем в сторону "неважно что, главное доказать что лучше"?

andy st
удар мимо. для mssql такие средства тоже есть.

Тем более странным выглядит Ваш предыдущий аргумент.

andy st
я думаю, что для оракловых джобов тоже что-то есть. одна проблема - грамотность дежурного персонала и текучка кадров.

Ээ... грамотности дежурного персонала не хватит на то, чтобы кликнуть по ярлыку, набрать в браузере пароль и посмотреть результаты-нажать кнопки? Тогда да, определенно что-то надо менять. И это что-то - не СУБД :)) Да и дельфа в этом случае не поможет.
24 янв 07, 13:16    [3686930]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67463
Блог
andy st
про OLE DB провайдер это сильно. особенно если оракул крутится под линухом или чем-нибудь еще более экзотичным.

Поверьте, нет никакой проблемы достучаться с "оракла под линухом или чем-нибудь более экзотичным" до источника данных с OLE DB провайдером.
24 янв 07, 13:19    [3686962]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
softwarer
Ээ.... мы сравниваем фичи или идем в сторону "неважно что, главное доказать что лучше"?


И даже не думал направлять дискуссию в это русло. Интерес был чисто сортивным.

softwarer
DTS MSSQL->Oracle меня.. крайне разочаровало по скорости


Тут, конечно, без возможности увидеть этот пакет определенного сказать ничего нельзя, от чего были тормаза. М.б. использовался Data Driven Query Task, когда для каждой записи из набора выполнялся определенный скрипт.

Но вот обратно Oracle (да что-либо другое)->MSSQL работает быстро, ибо MS SQL использует BULK операции.
24 янв 07, 13:26    [3687033]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
По поводу сравнения возможностей. Приеду лишь простейщий DTS пакетик. А так же перечень тасков, которые можно "забацать":

К сообщению приложен файл. Размер - 0Kb
24 янв 07, 13:31    [3687081]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
andy st
Member

Откуда:
Сообщений: 899
softwarer
andy st
я думаю, что для оракловых джобов тоже что-то есть. одна проблема - грамотность дежурного персонала и текучка кадров.

Ээ... грамотности дежурного персонала не хватит на то, чтобы кликнуть по ярлыку, набрать в браузере пароль и посмотреть результаты-нажать кнопки? Тогда да, определенно что-то надо менять. И это что-то - не СУБД :)) Да и дельфа в этом случае не поможет.

подскажите что... место работы дежурный персонал меняет ооочень часто. руководство сменить... кому-нибудь из работников когда-нибудь удавалось в транснациональном ходинге с количеством работников далеко за 100тыс.
softwarer

Поверьте, нет никакой проблемы достучаться с "оракла под линухом или чем-нибудь более экзотичным" до источника данных с OLE DB провайдером.

ткните ссылкой, плз.
а то в принципе нету проблем и колонию на Луне постоить :)
24 янв 07, 13:36    [3687147]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
Критика статьи. Про версионность.


Согласен, Yo несколько тенденциозен (кто ждал дугого подымите руки), но мне лично тоже представляется неудачной идея хранения версий в tempdb. Возможно от незнания.
24 янв 07, 14:21    [3687599]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
kennethr
Member

Откуда:
Сообщений: 175
pkarklin
Критика статьи. Про версионность.

Можете прокомментировать эскалацию блокировок и блокировки в MSSQL вообще?
24 янв 07, 14:25    [3687628]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
kennethr
pkarklin
Критика статьи. Про версионность.

Можете прокомментировать эскалацию блокировок и блокировки в MSSQL вообще?


Эскалация хорошо описана здесь: http://www.rsdn.ru/?article/?db/LockEscalation.xml

Блокировки описаны здесь: http://www.rsdn.ru/article/db/mssqllocks.xml

Более подробного описания трудно найти. Могу только выразить свое мнение относительно, опят же статьи.

из статьи
В целях экономии этой памяти mssql вынужден в определеных ситуациях блокировать не на уровне строк (строк с которыми идут операции), а всю таблицу


Ошибочка вышла в определении цели. Цель - производительност. И зависимости производительности от гранулярности блокировок для коротких и длинных транзакций приведен в статье по первой ссылке.

И, самое главное, ее (эскалацию) можно отключить. Как для отдельной таблицы, так и для инстанса в целом. Что дает разработчику\администратору возможность выбора (разумного). Естественно, что в случаи отключения эскалации для таблицы со 100 000 000 записей и удаления всех записей одним делитом надо добавить сиквел серверу памяти. Хотя, вряд ли, кто-то здравомыслящий будет это удалять одним статементом.
24 янв 07, 15:06    [3687997]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
Ошибочка вышла в определении цели. Цель - производительност. И зависимости производительности от гранулярности блокировок для коротких и длинных транзакций приведен в статье по первой ссылке.


Речь идет о том, что эскалация часто преподносится как фича MS SQL. При этом забывается, что эскалация блокировок в Oracle не имеет смысла вследствии того, что используется принципиально другой механизм хранения информации о блокировках не приводящий к высоким издержкам по ОП при увеличении количества заблокированных строк.

С документами на rsdn ознакамливался довольно подробно
24 янв 07, 15:16    [3688079]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Gluk (Kazan)
Речь идет о том, что эскалация часто преподносится как фича MS SQL. При этом забывается, что эскалация блокировок в Oracle не имеет смысла вследствии того, что используется принципиально другой механизм хранения информации о блокировках не приводящий к высоким издержкам по ОП при увеличении количества заблокированных строк.


Ее можно рассматривать как фичу, но не в сравнении с Oracle, из-за совершенно правильно указанной Вами разницы в механизмах.
24 янв 07, 15:22    [3688145]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
1024
Member

Откуда: Нижний Новгород
Сообщений: 14267
автор
все еще жду пример УБОЙНОЙ фичи, аналога которой НЕТ в Oracle


в дтс-пакетах при обработке данных можно использовать любой язык зарегистрированный как WSH. Например Perl.

ЗЫ
разумеется в оракле это не нужно и даже вредно. Всё чего в оракле нет не нужно и даже вредно.
24 янв 07, 15:47    [3688397]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
1024
автор
все еще жду пример УБОЙНОЙ фичи, аналога которой НЕТ в Oracle


в дтс-пакетах при обработке данных можно использовать любой язык зарегистрированный как WSH. Например Perl.


Не серьезно, а в Oracle есть Java и чо ???
Всю жизнь мечтал писать хранимки и задания миграции на Васике
24 янв 07, 15:51    [3688428]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
из статьи
В mssql размер блока (page size) равен 8К и не может быть изменен, что сильно ограничивает возможность настройки системы, особенно DSS систем. В оракле размер блока задается во время создания бд.


Хотелось бы чуть более подробнее, а не "сильно ограничивает возможность настройки системы". Т.е. какие настройки, как ограничивают, и во что это выливается. Тут даже автор и ссылки не удосужился привести.

из статьи
В mssql2005 нет before, on connect, отсутствует отложеная проверка.


BEFORE нет, есть INSTEAD OF, что, конечно, не одно и то же. На счет "on connect" - триггеров нет. Зато появилась такая фича, как Event Notification, одним из event_type которого м.б. audit-login. Подробности в BOL->CREATE EVENT NOTIFICATION.

Если под отложенной проверкой понимается отложенная проверка ограничений, то имеется возможность включать\выключать проверку этих ограничений "на лету" в транзакции.
24 янв 07, 15:52    [3688436]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
1024
в дтс-пакетах


Вы отвяжетесь от этого злосчастного DTS ? В ядре шо никаких Ноу Хау достойных внимания нет ???
24 янв 07, 15:55    [3688456]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
из статьи
В mssql размер блока (page size) равен 8К и не может быть изменен, что сильно ограничивает возможность настройки системы, особенно DSS систем. В оракле размер блока задается во время создания бд.


Хотелось бы чуть более подробнее, а не "сильно ограничивает возможность настройки системы". Т.е. какие настройки, как ограничивают, и во что это выливается. Тут даже автор и ссылки не удосужился привести.


Это вопрос тюнинга, для DSS обычно размер блока выбирается побольше, для OLTP поменьше. Фича не бесполезная
24 янв 07, 16:00    [3688503]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
kennethr
Member

Откуда:
Сообщений: 175
Можно сказать насчет отсутствия необходимости эскалации Oracle +1.

pkarklin
имеется возможность включать\выключать проверку этих ограничений "на лету" в транзакции.

Это не влияет на другие транзакции? Целостность в итоге гарантируется? Если так, то пожалуй у Oracle аналогично.
pkarklin
какие настройки, как ограничивают, и во что это выливается

Имеется ввиду, что в DSS системах предпочтителен "больший" размер блока. Весьма спорное утверждение, особенно после появления "многоблочного" чтения. Но в целом возможность выбора платформы для Oracle +.
24 янв 07, 16:08    [3688575]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
kennethr
Можно сказать насчет отсутствия необходимости эскалации Oracle +1.


Можно. Но лично я бы не стал ставить MS SQL за эскалацию -1.

kennethr
Это не влияет на другие транзакции? Целостность в итоге гарантируется?


Это ни коем образом не влияет на "другие транзакции" и целостность гарантируется.

kennethr
Имеется ввиду, что в DSS системах предпочтителен "больший" размер блока. Весьма спорное утверждение, особенно после появления "многоблочного" чтения. Но в целом возможность выбора платформы для Oracle +.


В том, что касается оптимизации операций чтения, то я бы поставил +1 MS SQL за следующее:

Advanced Scanning

One part of the SQL Server Enterprise Edition advanced scan feature allows multiple tasks to share full table scans. If the execution plan of a Transact-SQL statement requires a scan of the data pages in a table and the relational database engine detects that the table is already being scanned for another execution plan, the database engine joins the second scan to the first, at the current location of the second scan. The database engine reads each page one time and passes the rows from each page to both execution plans. This continues until the end of the table is reached.

At that point, the first execution plan has the complete results of a scan, but the second execution plan must still retrieve the data pages that occur before the point at which it joined the in-progress scan. The scan for second execution plan then wraps back to the first data page of the table and scans forward to the point at which it joined the first scan. Any number of scans can be combined like this. The database engine will keep looping through the data pages until it has completed all the scans. This mechanism is sometimes known as "merry-go-round scanning" and is the reason that the order of results from a SELECT statement without a predicate to sort on cannot be guaranteed.

For example, assume that you have a table with 500,000 pages. UserA executes a Transact-SQL statement that requires a scan of the table. When that scan has processed 100,000 pages, UserB executes another Transact-SQL statement that scans the same table. The Database Engine will schedule one set of read requests for pages after 100,001, and passes the rows from each page back to both scans. When the scan reaches the 200,000th page, UserC executes another Transact-SQL statement that scans the same table. Starting with page 200,001, the Database Engine passes the rows from each page it reads back to all three scans. After it reads the 500,000th row, the scan for UserA is complete, and the scans for UserB and UserC wrap back and start to read the pages starting with page 1. When the Database Engine gets to page 100,000, the scan for UserB is completed. The scan for Userc then keeps going alone until it reads page 200,000 . At this point, all the scans have been completed. Without advanced scanning, each user would have to compete for buffer space. The same pages would then probably be read one time for each user, instead of read one time and shared by multiple users.

ЗЫ. Извиняюсь за длинную цитату. Возможно аналог этого есть и в Oracle.
24 янв 07, 16:20    [3688683]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Gluk (Kazan)
1024
в дтс-пакетах


Вы отвяжетесь от этого злосчастного DTS ? В ядре шо никаких Ноу Хау достойных внимания нет ???


Считаю встроенное в ядро Event Notification достойным внимания. Хотя не уверен, что Oracle не имеет аналогичного функционала.
24 янв 07, 16:25    [3688747]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
BEFORE нет, есть INSTEAD OF


INSTEAD OF и в Oracle есть, и как Вы верно заметили это совсем не то, кроме того в MS SQL вроде как нет триггеров уровня строки ?

pkarklin

На счет "on connect" - триггеров нет. Зато появилась такая фича, как Event Notification, одним из event_type которого м.б. audit-login. Подробности в BOL->CREATE EVENT NOTIFICATION.


Опять-же не совсем то, триггеры могут быть использованы не только для аудита

pkarklin

Если под отложенной проверкой понимается отложенная проверка ограничений, то имеется возможность включать\выключать проверку этих ограничений "на лету" в транзакции.


Отложенная проверка, это когда констрейнты проверяются не при выполнении оператора, а при завершении транзакции. Иногда бывает нужно.
24 янв 07, 16:28    [3688779]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
Считаю встроенное в ядро Event Notification достойным внимания. Хотя не уверен, что Oracle не имеет аналогичного функционала.


А что оно позволяет делать с этими сообщениями, кроме аудита ?
24 янв 07, 16:33    [3688837]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
2 Gluk (Kazan)

Дался Вам этот аудит. :) Ну назвали так событие, которое происходит в момент успешного логина пользователя. Все события группы Trace Events начинаются с AUDIT: http://msdn2.microsoft.com/en-US/library/ms190655.aspx

А что он позволяет делать, это не для форума тема: http://msdn2.microsoft.com/en-us/library/ms190427.aspx
24 янв 07, 16:45    [3688936]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7 8 9 10 .. 23   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить