Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
softwarer Но случилось так, что связали их именно Вы, создав топик со словом "Oracle", написав внутри в том числе про Oracle, и закончив примерно следующим: "я ни хрена не понял написанное вице-президентом Oracle (или кто он там), а потому хочу проявить к нему недружественность". С каких пор у вас появилась отвратительная привычка передергивать факты и присваивать людям высказывания, которых небыло ? Был топик про Оракл и Yukon. В его конце было четко написано : "Offtopic", что в переводе на русский (если вдруг кто не знает), означает - отклонение от первоначальной темы. В этом оффтопике было написано про манеру Кайта писать книги. Никакой "связки" Оракла с Кайтом там нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 16:25 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
За исключением того, что Кайт один из наиболее известных и уважаемых апологетов Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 16:27 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Пока вижу только бардак в плане постановки задачи Код: plaintext 1. 2. 3. 4. 5. 6. 7. Требуется сделать ограничение: количество записей для каждого документа в таблице FORMAT_DOCUMET не должно превышать COUNT из таблицы DOCUMENT_TYPE. Сделать без использования блокировок любого типа. Если не получится сделать без блокировок - объяснить, почему не получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 16:35 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
2 Gluk (Kazan) Пока вижу только бардак в плане постановки задачи По моему человек пытается спросить, как с фантомными аномалиями бороться на уровне snapshot. Если я правильно понял, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 16:46 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
1. Завести поле-счетчик в DOCUMENT_TYPE 2. Обновлять его при добавлении документа и сравнивать с COUNT в триггере уровня строки 3. Если значение COUNT превышено, бросать исключение Требование по поводу отсутствия блокировок напоминает распоряжение о том чтобы отныне Солнце восходило на западе. DML-операторы будут блокировать свои данные как обычно P.S. И не стоит азывать поле COUNT, если Вы конечно не любитель гемороя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 16:49 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
ЛП2 Gluk (Kazan) Пока вижу только бардак в плане постановки задачи По моему человек пытается спросить, как с фантомными аномалиями бороться на уровне snapshot. Если я правильно понял, конечно. Являются ли они аномалиями для версионника, вот в чем вопрос ? Человек явно не знает таких сложных слов ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 16:50 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)1. Завести поле-счетчик в DOCUMENT_TYPE 2. Обновлять его при добавлении документа и сравнивать с COUNT в триггере уровня строки 3. Если значение COUNT превышено, бросать исключение Требование по поводу отсутствия блокировок напоминает распоряжение о том чтобы отныне Солнце восходило на западе. DML-операторы будут блокировать свои данные как обычно P.S. И не стоит азывать поле COUNT, если Вы конечно не любитель гемороя Идея ясна. Только поле счётчик надо не в DOCUMENT_TYPE, а в DOCUMENT завести. И, чтобы всё действительно работало надо не забыть перед обновлением нового счетчика сделать select for update на этот счётчик. А Вы забыли. Так что Ваше решение неработоспособно. Так как десять транзакций будут иметь свои снимки данных, не видя того, что вставили другие транзакции. И после фиксации данных и счётчик неправильный будет и ограничение не выполнится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 16:55 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Являются ли они аномалиями для версионника, вот в чем вопрос ? Версионник может позволить себе работать непредскузуемым образом - это не вопрос! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 16:59 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
ЛП2 Gluk (Kazan)По моему человек пытается спросить, как с фантомными аномалиями бороться на уровне snapshot. Если я правильно понял, конечно. Речь идёт не только о фантомных аномалиях. Это был не вопрос, а пример. При версионности невозможно не только с фантомными аномалиями бороться, но и вообще управлять логикой программы на основе данных, взятых из базы. У меня есть и другие примеры. Этот самый наглядный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:02 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Являются ли они аномалиями для версионника, вот в чем вопрос ? Человек явно не знает таких сложных слов ;) Аномалии являются аномалиями независимо от того, версионник это, блокировочник, или вообще гибрид. И независимо от того, какие слова человек знает. Аномалии либо могут встречаться на тех уровнях изоляции, которые поддерживаются сервером, либо не могут. На оракловом serializable (который snapshot) фантомы возможны, если не предпринимать дополнительных телодвижений. Если я не прав, то спецы меня поправят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:03 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
VoDAС другой стороны по Кайту (и не только) на Оракле нужно применять связанные переменные, MS SQL не озависит от этого. Хотя тестов не устраивал Не совсем так. Как работает Oracle: в нормальном режиме он делает именно то, что ему сказал программист. Если дан запрос вида Код: plaintext сервер построит план для "b = 1, a - любое" и будет использовать его для последующих аналогичных запросов. Для запроса вида Код: plaintext он построит другой план. Таким образом, программист имеет возможность гибко выбрать, что ему важнее - неоднородность данных (построение разных планов для разных b) либо экономия на перестроении плана (объединение по a). На это накладываются дополнительные моменты. Как одна из возможностей исправить на сервере ошибки программистов клиента, есть режим cursor_sharing. При этом оба предыдущих запроса автоматом "параметризуются", то есть при разборе первого будет построен план для Код: plaintext и этот план будет повторно использован для второго запроса. Таким образом, для плохо написанного клиента это даст выигрыш в производительности, в то же время для хорошо написанного - проигрыш. Как работает MS SQL (насколько я понял Merle): он работает в целом близко ко второму (cursor_sharing) режиму работы Oracle. Понятие bind variables там практически отсутствует; существует некий барьер, критическое число, после которого сервер решает, что у него "слишком много похожих планов" и сжимает их в один общий. Кроме того, существуют какие-то (непонятные мне) отличия в случае того, выполняется ли запрос из хранимой процедуры или передан непосредственно. Итого, получается следующее: в случае Oracle существует возможность гибкой настройки каждого конкретного запроса. Ценой этого является возможность создания плохо написанного приложения, что (снаружи; без исправления приложения) может быть скорректировано только весьма грубой кувалдой. MSSQL более адаптивен, пытается подстроиться под стиль запросов приложения; ценой этого является невозможность тонкой регулировки и, возможно, регулярно упоминаемая меньшая эффективность запросов, не упакованных в хранимки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:04 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
DarkSquid[quot Gluk (Kazan)]Только поле счётчик надо не в DOCUMENT_TYPE, а в DOCUMENT завести. И, чтобы всё действительно работало надо не забыть перед обновлением нового счетчика сделать select for update на этот счётчик. Бред авторВерсионник может позволить себе работать непредскузуемым образом - это не вопрос! Как я уже сказал, то что Вы не понимаете как ведет себя сервер, не означает, что он ведет себя непредсказуемо С "ТЗ" у Вас тоже каша в голове, как и было сказано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:05 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) DarkSquid[quot Gluk (Kazan)]Только поле счётчик надо не в DOCUMENT_TYPE, а в DOCUMENT завести. И, чтобы всё действительно работало надо не забыть перед обновлением нового счетчика сделать select for update на этот счётчик. Бред Сам ты бред. Не веришь - проверь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:07 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Как я уже сказал, то что Вы не понимаете как ведет себя сервер, не означает, что он ведет себя непредсказуемо Прошу прощения, но это Вы не понимаете, как ведёт себя сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:08 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
2 DarkSquid Речь идёт не только о фантомных аномалиях. Это был не вопрос, а пример. Пример так пример. Не вопрос :). При версионности невозможно не только с фантомными аномалиями бороться Однако ж люди как-то борются. но и вообще управлять логикой программы на основе данных, взятых из базы. Еще более сильное утверждение. Думаю, что и еще более неправильное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:09 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
ЛПНа оракловом serializable (который snapshot) фантомы возможны, если не предпринимать дополнительных телодвижений. Если я не прав, то спецы меня поправят. Вы правы, если подобные аномалии недопустимы в Вашей задаче, следует совершать "дополнительные телодвижения". Теперь расскажите, как построить версионник без подобных аномалий и без отвратительных просадок по производительности при блокировании диапазонов ключей с соотвественно увеличивающеся вероятностью deadlock-ов ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:10 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
ЛП При версионности невозможно не только с фантомными аномалиями бороться Однако ж люди как-то борются. Они борются идеологически. В вере их сила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:10 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
DarkSquid Gluk (Kazan)Как я уже сказал, то что Вы не понимаете как ведет себя сервер, не означает, что он ведет себя непредсказуемо Прошу прощения, но это Вы не понимаете, как ведёт себя сервер. Какой именно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:10 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
DarkSquid Gluk (Kazan)Бред Бред и есть, самый натуральный. Или же Вы сформулировали так, что я понял нечто совсем иное, нежели Вы имели в виду. "Необходимость явно блокировать строку перед ее обновлением" - пожалуй, мне будет очень интересно увидеть ее работающий пример. На этот раз уже пожалуй что с кодом, чтобы избежать непонимания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:11 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
DarkSquid Gluk (Kazan) DarkSquid[quot Gluk (Kazan)]Только поле счётчик надо не в DOCUMENT_TYPE, а в DOCUMENT завести. И, чтобы всё действительно работало надо не забыть перед обновлением нового счетчика сделать select for update на этот счётчик. Бред Сам ты бред. Не веришь - проверь. Переходим на личности ??? Ню Ню Было любопытно с вами пообщаться, но пользы мне в таком общении ни на грош А время дорого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:12 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Теперь расскажите, как построить версионник без подобных аномалий и без отвратительных просадок по производительности при блокировании диапазонов ключей с соотвественно увеличивающеся вероятностью deadlock-ов ??? Пардон, это ко мне? Я то здесь при чем? Если бы пришлось на версионнике с фантомами бороться в конкретной задаче, по условиям которой "подобные аномалии недопустимы" - ну сделал бы какое-нить дополнительное поле с дополнительной проверкой в триггере (т.е. в общем-то как в Вашем решении). А лечить Оракл от фантомных болезней снапшота - увольте, этим пусть юнцы с горящим взором занимаются :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:16 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
Вот он консенсус ??? Эти юнцы все больше предпочитают раскрывать жидо-массонские заговоры ораклоидных Лож, а чуть что кричать "сам дурак" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:20 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
softwarer Как работает MS SQL (насколько я понял Merle): он работает в целом близко ко второму (cursor_sharing) режиму работы Oracle. Понятие bind variables там практически отсутствует; существует некий барьер, критическое число, после которого сервер решает, что у него "слишком много похожих планов" и сжимает их в один общий. Кроме того, существуют какие-то (непонятные мне) отличия в случае того, выполняется ли запрос из хранимой процедуры или передан непосредственно. Итого, получается следующее: в случае Oracle существует возможность гибкой настройки каждого конкретного запроса. А какая разница между where a = :a и where a = @a ? Если никакой - то не получается. Я же тоже могу писать where a = @a and b = @b вместо where a = :a and b = :b и тогда план будет тоже повторно использоваться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:24 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
PL/SQL тоже параметризует используемые в SQL переменные, тока как быть с клиентским кодом ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:27 |
|
||
|
Почему ораклисты так не любят MS SQL?
|
|||
|---|---|---|---|
|
#18+
Специально для ораклистов:- Транзакция A Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Транзакция B Connected. SQL> select * from a; A B ---------- ---------- 1 1 1 4 SQL> select count(*) from a where a = 4; COUNT(*) ---------- 0 SQL> select * from a where a = 1; A B ---------- ---------- 1 1 1 4 SQL> select count(*) from a where a = 1; COUNT(*) ---------- 2 SQL> Что предлагают ораклисты? Посчитать count(*) и поместить его в поле счётчик в таблице DOCUMENT, после чего проверить ограничение в триггере на уровне строки. Это и есть бред или типичная ошибка ораклистов. Чтобы её избежать, надо всегда в триггере перед модификацией данных , от которых зависит поле-счётчик блокировать это поле, а уже после модификации обновлять его, оставляя заблокированным до завершения транзакции. Это есть не бред, а единственно верное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 17:27 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=33377299&tid=1553678]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 411ms |

| 0 / 0 |
