Цитата:
Сообщение от
gl00mie
В частности, замечено, что его оптимизатор, порой, как-то "своеобразно" подбирает "наиболее подходящий" индекс и строит совершенно дикие планы запроса - возможно, как раз из-за перекоса весов различных параметров, используемых им при оценке стоимости использования того или иного плана.
Ну тут могу сказать, что я наоборот, сталкивался с тем, что Oracle, в отличие от SQL Server чаще выберет FULL TABLE SCAN, нежели неоптимальный индекс. Хотя справедливости ради надо отметить, что порой он действительно "своеобразно" подбирает индекс и без Oracle DBA (или человека, исполняющего эту роль) будет тяжело обходиться.
Цитата:
Сообщение от
gl00mie
Интересно, а кто-нить заморачивался тем, чтобы посчитать и соотнести затраты на эти вот исследования, перенос данных, на тот же Оракл, на поиск и наем Oracle DBA (а без него у вас "само собой" ничего нормально не заработает) - к примеру, в сравнении с докупкой ндцати гигов памяти под сервер БД с Ms SQL 2005 x64?..А вы разбирались в причинах блокировок? А то ведь бывают случаи, когда сменой СУБД ничего не решить
Тут ведь есть вот такой нюанс. Бывают случаи, когда Oracle, как и SQL Server официально не закупаются (пиратские). Т.о. организация не ощущает на себе стоимость лицензий. И решение принимается исходя из слов "В Oracle будет все тип-топ, а SQL Server я плохо знаю" ответственного сотрудника. Докупать память - это деньги - а тут вроде как "своими силами" обходимся (которые кстати все равно фактически не бесплатные, но об этом часто забывают).
Кстати, в оракле - есть хороший анализатор выполняющихся запросов. Мы так нашли почему постоянно виснет разноска. Оракл показал на запрос UPDATE NumberSequenceTable. Нехитрые исследования показали, что проблема в непрерывных номерных сериях. Т.к. освобождение номера (в отличие от выделения) идет не в отдельной транзакции. В результате - мы максимально сняли везде галку "Непрерывная" (ессно убедившись, что это не приводит к трассировкам стека) и увеличили кол-во номеров на предварительное выделение у наиболее востребованных номерных серий (типа ваучера).
Я по себе скажу - что в SQL 2000 такого механизма в помине не было (формально блокировок не было). Насчет 2005 - не знаю, но есть ощущение - что в Оракл все равно выдавал больше нужной информации.