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

Откуда: Новосибирск
Сообщений: 2773
softwarer

create materialized view vendor_orders refresh fast on commit as
select b.vendor_id, a.order_id, sum ( b.price * a.amount ) price
from estimated a inner join parts b on a.part_id = b.id
group by order_id, vendor_id

Сорри за оффтоп.

Натыкался на такой же стиль именования алиасов (последовательность a, b, c etc), и до сих пор не могу понять, в чем его фича. Для каждого запроса в отдельности запоминать соответствие или бегать взглядом во from и обратно, пока не запомнишь? А если для отладки надо еще один, уточняющий, написать - предыдущий теряется? Оперативная память не бесконечна. Неудобно, имхо...
Я лично делаю сокращение по первым буквам слов в названии таблиц, если надо одинаковые - префиксы/суффиксы по смыслу, в сумме стараюсь длины больше трех букв не допускать.
Одинаковые таблицы в разных запросах при этом обычно идут одинаковым, знакомым алиасом.

Для примера:
        select
          eh.model, eh.period, eh.employee, n.id norm,
          count(*) as norms_count,
          sum(
            decode(sign(eh.rang - nvl(n.min_rang, 0)), -1, 0, 1) *
            decode(sign(
              GetNormLo(pModel, pPeriod, ps.employee, ps.points) - np.min_lo
            ), -1, 0, 1) *
            decode(sign(ps.go - np.min_go), -1, 0, 1) *
            decode(sign(ps.oo - np.min_oo), -1, 0, 1) *
            decode(sign(GetNoo(pModel, pPeriod, eh.employee, ps.points) - np.min_noo), -1, 0, 1)
          ) as norms_passed
        from
          employee_history eh, norms n, norm_points np, point_sums ps
        where
          eh.model = pModel and eh.period = pPeriod and
          n.model = pModel and n.leg_count is null and
          np.model = pModel and np.norm = n.id and
          ps.model = pModel and ps.period = pPeriod and
          ps.employee = eh.employee and np.points = ps.points and
          InCalcNode(eh.employee) <> 0 and
          1=1
        group by
          eh.model, eh.period, eh.employee, n.id
16 июл 07, 09:51    [4391117]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
softwarer
drev
Мне на конструктивный вопрос(про триггер) никто не ответил:)

Хм. Простите, а что в нем конструктивного? Ну отвечу я Вам -

create materialized view vendor_orders refresh fast on commit as
select b.vendor_id, a.order_id, sum ( b.price * a.amount ) price
from estimated a inner join parts b on a.part_id = b.id
group by order_id, vendor_id

И что, Вам стало реально легче?


1. Я надеюсь, вы понимаете, что легко привести пример, когда мы получим РАЗНЫЕ результаты?

2. Кроме того, "Materialized views are not eligible for fast refresh if the defined subquery contains an analytic function."

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

3. Мне никто не помешает послать те же данные в триггере по еmail, выполнить более сложные манипуляции над результатом, которые "не поместятся" в один селект, и т.д.

Т.е. ИМХО, отсутствие inserted, etc. в statement level triggers является серьёзным, и устранимым недостатком Oracle.
16 июл 07, 10:47    [4391434]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67447
Блог
Shr
Натыкался на такой же стиль именования алиасов (последовательность a, b, c etc), и до сих пор не могу понять, в чем его фича.

Не знаю и не могу ответить; я в данном случае следовал стилю именования моего собеседника, подчеркивая сходство написанного.
16 июл 07, 10:57    [4391492]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67447
Блог
drev
1. Я надеюсь, вы понимаете, что легко привести пример, когда мы получим РАЗНЫЕ результаты?

Да, безусловно. При этом мой будет правильнее с точки зрения стандартной постановки задачи (поскольку триггера на update и delete Вы написать поленились).

А теперь, уж простите, сформулирую то, что стоило бы понять Вам: пытаясь сформулировать замечание / выдвинуть претензию / организовать провокацию / прочее по вкусу, стоит делать это грамотно. Потому как в рамках гипотетического бурного обсуждения, которое могло бы развиться, никто не помешал бы мне опираясь на Ваш же пример разлиться соловьем и накидать примеров, которые Вы, деликатно говоря, умучались бы воспроизводить триггерами.

drev
Т.е. ИМХО, отсутствие inserted, etc. в statement level triggers является серьёзным, и устранимым недостатком Oracle.

"Отсутствие кнута и оглобель в мерседесе является, серьезным, хотя и устранимым...."

Скучно, простите. Вон, не так давно был опрос, проводимый ораклом - "что бы вы хотели видеть в следующих версиях". Ряд пожеланий, кстати, реализован в 11-й версии. Полного списка пожеланий оракл не выкладывал, но уверен, найти там "inserted etc" было бы довольно трудно.

Если хотите, поищите - где-то с полгода назад здесь мы с pkarklin подробно обсуждали варианты. Краткое изложение результата: если такая фича появится.... ну, фичи лишними не бывают, где-нибудь да и наверное будет удобно применить.
16 июл 07, 11:14    [4391624]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
1. Согласен, просто я рассчитывал на конструктивного собеседника. Вы же ответили конструктивно?

2. Вспомним про мышей и кактус. Я уверен, что большинство людей просто привыкли к отсутствию данной функциональности и привыкли выполнять трюки типа эмуляции inserted в package variables.

3. В принципе, да, без этого можно обойтись. Иногда с трюками, но можно. Но в своей критике я исxодил из утверждения "хорошая СУБД, но я бы добавил следующее...", а не из логики "Оракл г..вно, потому что в нём нет..".
16 июл 07, 11:33    [4391758]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67447
Блог
drev
1. Согласен, просто я рассчитывал на конструктивного собеседника. Вы же ответили конструктивно?

Разве? :) Скажем так: если я донес некую мысль, на что я надеялся, не особо веря, то видимо так, но с точки зрения конструктивности как "прямого ответа на заданный вопрос" - сомневаюсь.

drev
2. Вспомним про мышей и кактус. Я уверен, что большинство людей просто привыкли к отсутствию данной функциональности и привыкли выполнять трюки типа эмуляции inserted в package variables.

Ну как Вам сказать.... я бы не советовал надеяться, что все кругом идиоты, но в конце концов делайте как Вам удобнее.

Скажу так: "после всех воплей" в MSSQL таки приделали версионность, хотя как мы с Вами уверены, это очень нетривиальная доработка движка - согласны? Что касается приделать inserted/deleted - по архитектуре Oracle это тривиальнейшая доработка, всего лишь заполнение коллекции rowid параллельно и так осуществляемым операциям. Ее трудоемкость вместе с тестированием - максимум человеконеделя (собственно, час-два на доработку, остальное именно что тестирование). Однако при не меньшем количестве воплей почему-то никто и не чешется.

drev
Но в своей критике я исxодил из утверждения "хорошая СУБД, но я бы добавил следующее...",

Я понимаю, но как бы сказать... не всегда следует тащить за собой привычные подходы. Скажу так: в Oracle 10g есть ряд куда более желательных к доработке моментов, хотя бы автоматическое создание партиций, которое мы вроде бы наконец-то дождались в 11-м.
16 июл 07, 12:26    [4392166]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

softwarer wrote:
> Что касается приделать inserted/deleted - по архитектуре
> Oracle это тривиальнейшая доработка, всего лишь заполнение коллекции
> rowid параллельно и так осуществляемым операциям. Ее трудоемкость вместе
> с тестированием - максимум человеконеделя (собственно, час-два на
> доработку, остальное именно что тестирование).
Мне бы такой оптимизм :)

зы не дай бог такого оптимиста в тим-лиды ;)

Posted via ActualForum NNTP Server 1.4

16 июл 07, 12:49    [4392307]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
softwarer
drev
1. Согласен, просто я рассчитывал на конструктивного собеседника. Вы же ответили конструктивно?

Разве? :) Скажем так: если я донес некую мысль, на что я надеялся, не особо веря, то видимо так, но с точки зрения конструктивности как "прямого ответа на заданный вопрос" - сомневаюсь.

Донесли-донесли:). Как Вы говорите: не "все кругом идиоты"



drev
2. Вспомним про мышей и кактус. Я уверен, что большинство людей просто привыкли к отсутствию данной функциональности и привыкли выполнять трюки типа эмуляции inserted в package variables.

Ну как Вам сказать.... я бы не советовал надеяться, что все кругом идиоты, но в конце концов делайте как Вам удобнее.

Скажу так: "после всех воплей" в MSSQL таки приделали версионность, хотя как мы с Вами уверены, это очень нетривиальная доработка движка - согласны? Что касается приделать inserted/deleted - по архитектуре Oracle это тривиальнейшая доработка, всего лишь заполнение коллекции rowid параллельно и так осуществляемым операциям. Ее трудоемкость вместе с тестированием - максимум человеконеделя (собственно, час-два на доработку, остальное именно что тестирование). Однако при не меньшем количестве воплей почему-то никто и не чешется.

Так получилось, что я, наверно, чуть лучше Вас представляю "как это делается в Оракле". Не в обиду, так исторически сложилось.

По моим оценкам, Вы ошибаетесь в оценке трудоёмкости минимум на два порядка.

Кроме того, так, как Вы это предлагаете сделать, приведёт к потерям производительности.


drev
Но в своей критике я исxодил из утверждения "хорошая СУБД, но я бы добавил следующее...",

Я понимаю, но как бы сказать... не всегда следует тащить за собой привычные подходы. Скажу так: в Oracle 10g есть ряд куда более желательных к доработке моментов, хотя бы автоматическое создание партиций, которое мы вроде бы наконец-то дождались в 11-м.
16 июл 07, 12:54    [4392338]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
locky

softwarer wrote:
> Что касается приделать inserted/deleted - по архитектуре
> Oracle это тривиальнейшая доработка, всего лишь заполнение коллекции
> rowid параллельно и так осуществляемым операциям. Ее трудоемкость вместе
> с тестированием - максимум человеконеделя (собственно, час-два на
> доработку, остальное именно что тестирование).
Мне бы такой оптимизм :)

зы не дай бог такого оптимиста в тим-лиды ;)
Posted via ActualForum NNTP Server 1.4


Нет, не бойся, не дадим:)

Надеюсь, моя оценка тебя не так шокирует?:)
16 июл 07, 12:58    [4392367]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

drev wrote:
> Надеюсь, моя оценка тебя не так шокирует?:)
Ну... Это уже куда ближе к реальности...

Posted via ActualForum NNTP Server 1.4

16 июл 07, 14:02    [4392898]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67447
Блог
drev
Так получилось, что я, наверно, чуть лучше Вас представляю "как это делается в Оракле". Не в обиду, так исторически сложилось.

По моим оценкам, Вы ошибаетесь в оценке трудоёмкости минимум на два порядка.

Может быть. С любопытством выслушаю Вашу версию, если, конечно, она отличается от "там такие тормоза, что ничего быстро не делается".

drev
Кроме того, так, как Вы это предлагаете сделать, приведёт к потерям производительности.

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

Сообщение было отредактировано: 16 июл 07, 14:26
16 июл 07, 14:17    [4393037]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

softwarer wrote:
> Может быть. С любопытством выслушаю Вашу версию, если, конечно, она
> отличается от "там такие тормоза, что ничего быстро не делается".
Как минимум надо реализовать поддержку в before/after триггерах, не
забыть автономные триггера - это уже не "пара часов".

Кроме всего прочего, rowid не всегда применим, как мне кажется -
например, в случае before триггера, когда физически строк в табличке еще
нет.

Для хранения inserted/deleted нужно будет придумывать некий механизм
(коллекции, увы, не подойдут) - причем механизм шустрый и надежный -
это уже не "пара часов".

По поводу тестирования: как минимум подготовка тест-кейсов для проверки
всего спектра возможностей - это уже не неделя даже, а куда больше.

Posted via ActualForum NNTP Server 1.4

16 июл 07, 14:25    [4393118]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67447
Блог
locky
Как минимум надо реализовать поддержку в before/after триггерах, не
забыть автономные триггера - это уже не "пара часов".

Хм. Давайте вы договоритесь между собой и выдвинете единую версию, ok?

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

locky
Кроме всего прочего, rowid не всегда применим, как мне кажется -
например, в случае before триггера, когда физически строк в табличке еще
нет.

Ээ... простите, а какой идиот будет ожидать наличия inserted в before insert statement level-а?

Например, следующий сценарий. Допустим, Вы каким-то чудо-юдо образом сделали этот inserted и использовали его. Я делаю insert/select, в котором вставляю строки, нарушающие ограничения таблицы - дубли по уникальным полям итп. В before insert row-level я это безобразие правлю на нечто допустимое, все, разумеется, нормально вставляется. Внимание, вопрос: какова практическая ценность того inserted-а, который Вы обрабатывали?

В before insert если и может быть доступно нечто, то это, назовем так, selected - то есть тот набор данных, который собственно вставляется через insert/select, bulk insert итп.
16 июл 07, 14:41    [4393256]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

softwarer wrote:
> Ээ... простите, а какой идиот будет ожидать наличия *inserted* в *before
> insert* statement level-а?
например, такой идиот, как я.
Я ожидаю, что если я делаю insert - то получаю inserted :)

> Например, следующий сценарий. Допустим, Вы каким-то чудо-юдо образом
> сделали этот inserted и использовали его. Я делаю insert/select, в
> котором вставляю строки, нарушающие ограничения таблицы - дубли по
> уникальным полям итп. В before insert row-level я это безобразие правлю
> на нечто допустимое, все, разумеется, нормально вставляется. Внимание,
> вопрос: какова практическая ценность того inserted-а, который Вы
> обрабатывали?
Внимание, вопрос: какова ценность before insert row-level, если в before
insert statement-level всё это можно сделать одним/двумя dml?
Ну, для эстетов - открыв курсор и пробежавшись по нему?
(например, можно из inserted убрать дублирующие строки - дабы оне потом
не залились в таблу)

> В before insert если и может быть доступно нечто, то это, назовем так,
> *selected* - то есть тот набор данных, который собственно вставляется
> через insert/select, bulk insert итп.
Да, selected.... причем при before delete - это что уже будет? всё равно
selected?

Posted via ActualForum NNTP Server 1.4

16 июл 07, 14:47    [4393320]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
softwarer
drev
Так получилось, что я, наверно, чуть лучше Вас представляю "как это делается в Оракле". Не в обиду, так исторически сложилось.

По моим оценкам, Вы ошибаетесь в оценке трудоёмкости минимум на два порядка.

Может быть. С любопытством выслушаю Вашу версию, если, конечно, она отличается от "там такие тормоза, что ничего быстро не делается".

drev
Кроме того, так, как Вы это предлагаете сделать, приведёт к потерям производительности.

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


Давайте считать (я это делаю навскидку, безусловно, многое пропущу)

1. Изменения в парсерах. как это ни странно, существует не один парсер. Более того, за них отвечают разные люди. Скорее всего, придётся менять определение идентификатора, так как просто "inserted" использовать нельзя, оно не было зарезервировано, т.е., может быть, что то типа "###inserted" придётся ввести. Сколько конфликтов возникнет - зависит от конкретной грамматики, я предсказать затрудняюсь.

2. Опять же в нескольких местах придётся менять "линкер". Причём, наиболее серьёзные изменения будут в engine. И это уже серьёзнее.

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

4. Изменения в GUI. Ну.. здесь не так много.. правда тулз до фига. За несколько месяцев все согласуют и сделают.

5. Документация. Разные языки.

6. Всякие песни и пляски с имплементацией на разных платформах.

7. Навскидку, будет задействовано групп 10. Минимум 100 митингов - гарантирую.

8. Тестирование.


Примерно так.
16 июл 07, 14:57    [4393394]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67447
Блог
locky
например, такой идиот, как я.
Я ожидаю, что если я делаю insert - то получаю inserted :)

И получите. На тех after-триггерах, к которым привыкли. А залезая в непривычную область - стоит постараться думать системно. Тут даже английский язык подсказывает вполне однозначно - надеюсь, не нужно объяснять, что "inserted" - глагол в прошедшем времени?

locky
Внимание, вопрос

Я коротко отвечу на Ваш вопрос - коротко, потому что он столь же конструктивен, как drev-овский вопрос про триггер - но уж будьте так любезны таки прямо и незатейливо ответить на заданный мной. Пока что мы получили, что предлагаемая Вами схема рассыпалась от первого же чиха, и Вы даже не пытаетесь ее собрать, вместо этого пустившись в обсуждение побочных вопросов.

locky
: какова ценность before insert row-level,

Удобство, выражающееся в возможности обойтись без извращений, которые Вы активно предлагаете. Скажем, нарисуйте пожалуйста MSSQL-аналог следующего триггера:

create or replace trigger ......
begin
  :new.some_date := CalcSomeDate ( :new.id ) ; -- CalcSomeData - делает пару селектов и обрабатывает их результаты
end ;


locky
Да, selected.... причем при before delete - это что уже будет? всё равно selected?

Вот, уже не нашли ничего лучше, как попытаться придраться к терминологии, специально отмеченной выше как "сугубо условная". Слабовата позиция, однако.

Да, вполне. Дело в том, что как Вы наверняка знаете, в Oracle, в отличие от привычного Вам, результаты DML-операций согласованны, и в принципе можно сказать, что операторы update, delete и merge делают неявный селект, с согласованными результатами которого и работают.
16 июл 07, 15:11    [4393532]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
Скажем, нарисуйте пожалуйста MSSQL-аналог следующего триггера:


create or replace trigger ......
begin
:new.some_date := CalcSomeDate ( :new.id ) ; -- CalcSomeData - делает пару селектов и обрабатывает их результаты
end ;


Только в контексте аналога:

CREATE TRIGGER it_SomeTable
FOR INSERT
AS
  UPDATE
    T.SomeDate = dbo.CalcSomeDate(T.ID)
  FROM
    SomeTable T
    INNER JOIN inserted i ON
    T.ID = i.ID
16 июл 07, 15:21    [4393626]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

softwarer wrote:
> получили, что предлагаемая Вами схема рассыпалась от первого же чиха, и
Хм... не заметил "рассыпания", честно говоря. Видимо - я что-то пропустил?

Вы про свой пример с уникальностями, где Вы правите данные на "нечто
допустимое"?

Забавно, кстати...

Posted via ActualForum NNTP Server 1.4

16 июл 07, 15:40    [4393779]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
ЛП
Guest
softwarer
Тут даже английский язык подсказывает вполне однозначно - надеюсь, не нужно объяснять, что "inserted" - глагол в прошедшем времени?

А что у Вас в школе по английскому было?
Надеюсь, не нужно объяснять, что "inserted" - это прилагательное, обычно переводимое как "вставленный, введенный"?

А если уж Вы считаете, что объект можно называть глаголом, то этот глагол может быть частью хоть Past Indefinite/Perfect, хоть Present Perfect, хоть Future Perfect/Perfect in the Past, хоть все что угодно Passive Voice.
16 июл 07, 15:42    [4393795]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67447
Блог
drev
1. Изменения в парсерах. как это ни странно, существует не один парсер.

Угу. Найти все места, в которых парсится :new и :old и добавить туда :inserted и прочее, что захотим. Страшно, аж жуть.

drev
Скорее всего, придётся менять определение идентификатора, так как просто "inserted" использовать нельзя, оно не было зарезервировано, т.е., может быть, что то типа "###inserted"

Ну уморили, уж простите. Без обид (c) До сих пор я считал, что моя дочка - чемпион по логическим цепочкам, начинающимся с "если я не одену на прогулку белые носочки", а заканчивающиеся "меня не возьмут в школу, я не выучусь, мне придется работать дворником, я стану некрасивой и умру".

Как-то у вас с locky синхронно получается - один предлагает отломать row-level только чтобы работал привычный ему подход, другой предлагает перетряхивать весь сервер ради реализации того, что реализовано не то с пятой, не то с шестой версии Oracle.

drev
Сколько конфликтов возникнет - зависит от конкретной грамматики, я предсказать затрудняюсь.

Отметим - "предсказать трудоемкость" при этом вопросов не возникает.

drev
2. Опять же в нескольких местах придётся менять "линкер". Причём, наиболее серьёзные изменения будут в engine. И это уже серьёзнее.

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

Для начала, если не затруднит, ткните пальцем, что за "линкер" Вы имеете в виду?

drev
3. Самое серьёзное, это песни и пляски вокруг оптимизатора и подсчёта статистик. Это встретит наибольшее сопротивление, т.к. в любой базе данных оптимизатор является вещью в себе и наиболее неустойчивой частью.

И снова уморили. В данном случае мы имеем не то чтобы "статистику", а прямо-таки "известное число записей" в каждом конкретном случае; можем считать, что в запросе автоматом задан хинт CARDINALITY. В целом вся эта пляска, которую Вы так расписываете, отлаживается со времен Oracle 8.1, с момента появления табличных функций.

Конечно, можно попробовать добавить сюда еще какую-нибудь дополнительную оптимизацию, кроме стандартной для этого случая. Это отдельная работа, никак не относящаяся к "внедрить фичу"; не надо вспоминать советское прошлое и заниматься приписками.

drev
4. Изменения в GUI. Ну.. здесь не так много.. правда тулз до фига.

Давайте, смелее. Назовите хоть одну оракловую тулзу, которую придется править, чтобы работать с этой фичой. Я вот почему-то уверен, что даже sqlplus от восьмерки вполне справится без всяких патчей.

drev
5. Документация.

Cогласен, вместо "тестирования" надо было сказать "тестирование и документирование". Готов отвести на это еще одну неделю.

drev
Разные языки.

Какие именно? Вон, РДТЕХ взялся переводить документацию на русский - так до сих пор дальше восьмерки по сути не продвинулся. Однако, почему-то это не помешало Oracle выпустить уже 11-ю версию, не ждут, сволочи этакие, и не присчитывают в трудоемкость.

drev
6. Всякие песни и пляски с имплементацией на разных платформах.

Cнова общие слова без тени смысла. Ну какие здесь "проблемы с разными платформами", сюда даже hi- и low-endian числовые форматы, и то не притянешь. Вдумайтесь еще раз: используются только и исключительно готовые универсальные механизмы. Безусловно, существует вероятность, что в ходе тестирования фичи будет вскрыт баг в этих механизмах - но это не "трудоемкость реализации фичи", это идет на счет реализации того механизма, в котором будет бага.

drev
7. Навскидку, будет задействовано групп 10. Минимум 100 митингов - гарантирую.

Это уже из серии "ну тааакие тормоза". Тут не возьмусь судить, но согласен - если задаться целью, можно растянуть как угодно.

drev
Примерно так.

Угу. В общем, апокалиптический сценарий без аргументации, уж извините, на уровне "назову много страшных слов".

Я бы еще понял, если бы Вы, например, предположили трудоемкость сочетания этой фичи с native компиляцией (есть, знаете ли, такая штука - PL/SQL код парсится, переводится на Си, компилируется обычным компилятором и подключается в базу в таком виде). Но так - ....
16 июл 07, 15:46    [4393824]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

softwarer wrote:
> 1. Изменения в парсерах. как это ни странно, существует не один парсер.
>
>
> Угу. Найти все места, в которых парсится :new и :old и добавить туда
> :inserted и прочее, что захотим. Страшно, аж жуть.
Вы знаете... это и впрямь довольно страшно, на самом то деле...

> Скорее всего, придётся менять определение идентификатора, так как просто
> "inserted" использовать нельзя, оно не было зарезервировано, т.е., может
> быть, что то типа "###inserted"
>
>
> Ну уморили, уж простите. Без обид (c) До сих пор я считал, что моя дочка
> - чемпион по логическим цепочкам, начинающимся с "если я не одену на
> прогулку белые носочки", а заканчивающиеся "меня не возьмут в школу, я
> не выучусь, мне придется работать дворником, я стану некрасивой и умру".
Потому что нам с drev приходится лопатить туеву хучу ораклового кода - и
код бывает ой какой разный. и вот такого рода предположения, что "кто-то
назовет юзеровую табличку inserted" - это вполне нормально - и не так
называли.

Хотя, drev, с другой стороны - оракл может и забить на такое - бывали
преценденты. В конце концов не так уж и сложно заквотить inserted -
хотя, от кода зависит.

> Как-то у вас с locky синхронно получается - один предлагает отломать
> row-level только чтобы работал привычный ему подход, другой предлагает
> перетряхивать весь сервер ради реализации того, что реализовано не то с
> пятой, не то с шестой версии Oracle.
Синхронно - потому как в одной конторе работаем, просто в разных городах.
Кстате, я не предлагал "отломать" row-level - "лишних фич не бывает, не
нравится - не юзай её".



Черт, остальное даже комментить не хочется.
Кака в том, что drev таки очень сильно прав - но, являясь по жизни
оптимистом - всё слегка подает в "розовом свете" :)
Скорее всего всё гораздо хуже.

Posted via ActualForum NNTP Server 1.4

16 июл 07, 16:02    [4393990]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67447
Блог
pkarklin
Только в контексте аналога:

Спасибо, конечно, но в данном случае мне был бы интересен именно ответ оппонента. Относительно такого синтаксиса я в курсе....

locky
Хм... не заметил "рассыпания", честно говоря. Видимо - я что-то пропустил?

Пропустили, уже второй раз, думаю, вполне сознательно.

locky
Забавно, кстати...

Безусловно. Дважды прошу ответить, один раз специально прошу ответить прямо. В ответ - сначала увертка с "а вы так не делайте", потом молчание.

ЛП
А что у Вас в школе по английскому было?

Плохо помню, скорее всего пятерка. Я учил английский с четырех лет, и этого мне хватило, чтобы в школе испытать интерес единственный раз - когда на педпрактику пришла выпускница ин[ъ]яза.

ЛП
Надеюсь, не нужно объяснять, что "inserted" - это прилагательное, обычно переводимое как "вставленный, введенный"?

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

ЛП
хоть все что угодно Passive Voice.

Согласен. Но есть одна маленькая деталь - это уже не inserted, а will be inserted, going to be inserted или другая подобная конструкция. "inserted' как самостоятельное понятие запихнуть в будущее.. проблематично, назовем так.
16 июл 07, 16:05    [4394023]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67447
Блог
locky
softwarer
Угу. Найти все места, в которых парсится :new и :old и добавить туда
:inserted и прочее, что захотим. Страшно, аж жуть.

Вы знаете... это и впрямь довольно страшно, на самом то деле...

Нет, не знаю. Думаю, если копать, мы снова придем к той ситуации, когда вы сидели с кривым API и мучились по поводу rownum-а.

locky
Потому что нам с drev приходится лопатить туеву хучу ораклового кода - и
код бывает ой какой разный. и вот такого рода предположения, что "кто-то
назовет юзеровую табличку inserted" - это вполне нормально - и не так
называли.

Скажите пожалуйста, Вы читать умеете? Разницу между inserted и :inserted видите? Я не знаю, как еще вам объяснить, но попробуйте хотя бы посчитать символы; в одном - восемь символов, в другом - девять. Если не хватает, можно использовать какой-нибудь :table.inserted - это уже вообще ни с чем даже теоретически не перепутаешь.

locky
Синхронно - потому как в одной конторе работаем, просто в разных городах.

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

locky
Кстате, я не предлагал "отломать" row-level - "лишних фич не бывает, не нравится - не юзай её".

Согласен, это преувеличение, акцентирующее внимание на Вашем "а зачем вообще row-level, если".

locky
Кака в том, что drev таки очень сильно прав - но, являясь по жизни
оптимистом - всё слегка подает в "розовом свете" :) Скорее всего всё гораздо хуже.

Я не в курсах внутренних порядков Oracle и вполне допускаю, что "фич менее человеко-года там просто не бывает в принципе". Но это уже вопрос исключительно плохой организации труда, а не трудоемкости конкретной фичи.

Да, я готов поверить, что над оптимальнейшей реализацией этой фичи надо поломать голову, и она будет много сложнее. Я не ставлю целью "с бедра" выдавать идеальные решения. То, что это можно сделать легко и просто при вполне адекватном качестве - факт.
16 июл 07, 16:14    [4394112]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
ЛП
Guest
2 softwarer
Плохо помню, скорее всего пятерка.

А по русскому?

Чтобы завершить бессмысленный отход от темы

Наверное, не надо было начинать. Рассуждали бы про оракл, оно у Вас лучше получается :)

в русском языке это называется "причастие", которое, напомню, форма глагола.

Которое, напомню, отглагольное прилагательное.
Тем не менее, независимо от того, чем является причастие в русском, и независимо от того, во что переводится английское inserted, в английском inserted есть adjective, а никак не participle.

Согласен. Но есть одна маленькая деталь - это уже не inserted, а will be inserted, going to be inserted или другая подобная конструкция. "inserted' как самостоятельное понятие запихнуть в будущее.. проблематично, назовем так.

Согласен.. Однако как самостоятельное понятие его и в Past Indefinite не запихнуть.
16 июл 07, 16:25    [4394212]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

softwarer wrote:
> Спасибо, конечно, но в данном случае мне был бы интересен именно ответ
> оппонента. Относительно такого синтаксиса я в курсе....
После ответа pkarklin - смысл было дубли пускать?


> Хм... не заметил "рассыпания", честно говоря. Видимо - я что-то пропустил?
>
> Пропустили, уже второй раз, думаю, вполне сознательно.
правда - несознательно и уже - в третий раз :(

>
> Безусловно. Дважды прошу ответить, один раз специально прошу ответить
> прямо. В ответ - сначала увертка с "а вы так не делайте", потом молчание.
Потому что я ТАКИ ПРОПУСТИЛ где что рассыпается :(

Posted via ActualForum NNTP Server 1.4

16 июл 07, 16:46    [4394397]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8 9 10 .. 24   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить