|
|
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНGluk (Kazan),А можно ли в оракле каскадно проверить валидность всех объектов, которые зависят от одного объекта, с которым мы работаем? И что будет при обнаружении инвалида с остальными объектами в дереве(останутся валидными или нет)? Дык, конечно каскадно инвалидируется. А как же еще? Правда тут есть два нюанса (из тех что навскидку помню): 1. Динамический SQL разрывает цепочку зависимостей (из-за чего, в частности не рекомендуется его использовать), и дает возможность поймать ошибку в RunTime 2. Если кто-то использует пакет, он зависит от его интерфейса, а не от реализации (и это очень правильно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 15:57 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
SergSuperiscrafmSergSuper, т.е. Вы считаете, что для разработчика вполне нормально писать такие запросы? уточните плз.не вижу смысла уточнять, это к теме разговора никак не относится как знаете. Разговор был как раз об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 16:02 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan), ну дык, первое как раз логично. Если что - программист сам дурак. А второй случай имеет отдалённую аналогию в pg. Названия функций, тип, параметры должны оставаться неизменными, а вот потроха... Короче,валидация - нужный и полезный механизмус. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 16:04 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)ОКТОГЕНGluk (Kazan),А можно ли в оракле каскадно проверить валидность всех объектов, которые зависят от одного объекта, с которым мы работаем? И что будет при обнаружении инвалида с остальными объектами в дереве(останутся валидными или нет)? Дык, конечно каскадно инвалидируется. А как же еще? Правда тут есть два нюанса (из тех что навскидку помню): 1. Динамический SQL разрывает цепочку зависимостей (из-за чего, в частности не рекомендуется его использовать), и дает возможность поймать ошибку в RunTime 2. Если кто-то использует пакет, он зависит от его интерфейса, а не от реализации (и это очень правильно) Когда-то в молодости (был тогда Oracle 9), на меня сильно накричали архитектор и руководитель поддержки, за то, что они обнаружили мой PL/SQL-пакет, а там, о боже, все обращение к таблицам по дб-линкам были в статическом sql. "Обращения к таблицам по дб-линкам только к динамическом sql, иначе может наступить .Опа!!!" - говорили сердитые лица. Вот так жили люди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 17:29 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
web_foxGluk (Kazan)ОКТОГЕНGluk (Kazan),А можно ли в оракле каскадно проверить валидность всех объектов, которые зависят от одного объекта, с которым мы работаем? И что будет при обнаружении инвалида с остальными объектами в дереве(останутся валидными или нет)? Дык, конечно каскадно инвалидируется. А как же еще? Правда тут есть два нюанса (из тех что навскидку помню): 1. Динамический SQL разрывает цепочку зависимостей (из-за чего, в частности не рекомендуется его использовать), и дает возможность поймать ошибку в RunTime 2. Если кто-то использует пакет, он зависит от его интерфейса, а не от реализации (и это очень правильно) Когда-то в молодости (был тогда Oracle 9), на меня сильно накричали архитектор и руководитель поддержки, за то, что они обнаружили мой PL/SQL-пакет, а там, о боже, все обращение к таблицам по дб-линкам были в статическом sql. "Обращения к таблицам по дб-линкам только к динамическом sql, иначе может наступить .Опа!!!" - говорили сердитые лица. Вот так жили люди. Синоним FORCE VIEW и никакой динамики ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 17:32 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНо это всё же приятнее, чем обнаружить что она перестала работать, в момент вызова. Не уверен, хотя это уже наверное дело вкуса. Просто я рассматриваю СУБД, как инструмент разработчика, а не как ПО для конечного пользователя и посему от СУБД ожидаю максимальной дружелюбности по отношению к разработчику (о пользователе должен заботиться разработчик прикладного ПО). С этой точки зрения сокрытие информации о потенциальных проблемах есть крайне недружелюбный шаг со стороны СУБД. В общем в случае, если какой-то из зависимых объектов компилироваться перестал имеем две возможности: а. сразу продиагностировать проблему б. разрешить использованее ранее скомпилированного варианта Наверное, оптимальным было бы делать и то и то сразу, но увы... Oracle делает a и не делает b Firebird делает b и не делает a (если я правильно понял) MSSQL не делает ни того ни другого За отсутствием идеала из трех имеющихся вариантов я выбираю оракловый (причины объяснил выше) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 18:45 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andreyа. сразу продиагностировать проблему б. разрешить использованее ранее скомпилированного варианта Наверное, оптимальным было бы делать и то и то сразу, но увы... Oracle делает a и не делает b А вот я не уверен, что он делает а. Лог выполнения тестового скрипта Глюк не привёл и из его слов я понял, что для диагностики требуются дополнительные телодвижения в виде поиска и уничтожения инвалидов, который автоматом не делается. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 19:37 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyMSSQL не делает ни того ни другого Гм... MS SQL 2008: Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 20:23 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov А вот я не уверен, что он делает а. Лог выполнения тестового скрипта Глюк не привёл и из его слов я понял, что для диагностики требуются дополнительные телодвижения в виде поиска и уничтожения инвалидов, который автоматом не делается. вот делать нефиг еще азбучные истины логом иллюстрировать как представляешь себе автоматическое лечение инвалидов? Там ить код в нашем случае менять придется :) ИИ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2010, 23:04 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
pkarklinГм... MS SQL 2008:Я не работал с MSSQL уже лет десять и посему мои сведения могут быть устаревшими, неполными и ошибочными. Мне казалось, что сложности были. рад, если их нет. Прошу прощения, если задел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 09:29 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyПрошу прощения, если задел. Да ни коим образом. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 09:33 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovдля диагностики требуются дополнительные телодвижения в виде поиска и уничтожения инвалидов, который автоматом не делается. Инвалиды автоматом "помечаются", а уж решение о том что и как с ними делать принимает, естественно, человек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 09:45 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
pkarklinBogdanov AndreyMSSQL не делает ни того ни другого Гм... MS SQL 2008: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 09:54 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
SergSuper, Безусловно, пропустить можно все. А можно на это дело SCOM натравить с соответсвующим монитором, чтоб он письма и SMSки слал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 10:27 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
pkarklinSergSuper, Безусловно, пропустить можно все. А можно на это дело SCOM натравить с соответсвующим монитором, чтоб он письма и SMSки слал. Инвалиды в базе пропустить сложнее чем SMS-ку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 10:41 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Инвалиды в базе пропустить сложнее чем SMS-ку По-моему, мы уходим от реальных обсуждений в сторону перфекционизма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 10:55 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
pkarklinGluk (Kazan)Инвалиды в базе пропустить сложнее чем SMS-ку По-моему, мы уходим от реальных обсуждений в сторону перфекционизма. С чьей стороны? Ладно, забей :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 11:01 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
авторУ меня это бывает при совершенно обычных операциях - гоняешь свой прикладной софт в отладчике - хопа, а в какой-то момент сервер PosgreSQL умер. )))))))))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 00:59 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
офтопик конечно, но афтор как говориться и жнец и на дуде игрец http://www.vb-net.ru/criptopro/index.htm, это просто чудо какое-то, надо спать идти, и немогу, перец жжет по полной, ну зачем вы лезите в крипто, какие нах "маски ключи", какие сведения о платежах, почитайте гост, где там умножение простых чисел, вы понимаете что ваш сайт посещают дети которые не имеют понятия о ИБ а вы им такой фуфел гоните ... очнь смешно и очнь грустно ... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 02:51 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА теперь вопрос на засыпку: какой констрейнт надо включить , чтобы Оракул не дал сохранить в базу инвалидную процедуру или другой объект? Формулировка вопроса говорит о полном непонимании архитектуры и базовых понятий. Об этом уже сказали. http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/data_int.htm#i13162 Oracle uses integrity constraints to prevent invalid data entry into the base tables of the database.Чувствуешь разницу между "invalid data entry into the base tables" и "invalid objects in the user schema"? ЛП2 SergSuper iscrafmдля этого блокнот есть да можно и не в блокноте, а карандишиком на отдельных листочках главное не забывать куда положил Можно и на листочке. Это всё лучше, чем принципиально неработающие объекты держать в рабочей системе. Для меня лично такое поведение - это что-то из разряда "нажал на кнопку Build Solution, мудрая Visual Studio выдала 10 ошибок и 100 ворнингов, и ... сбилдила проект". ЛПВсе равно что при создании таблицы неправильно указать тип данных у одного из столбцов, разумеется словить ошибку, вывести сообщение с описанием ошибки - но таблицу всё равно создать. Занафига? Подумай о том, что происходит когда создается: 1) процедура 2) таблица 3) бинарники из исходников Подсказка: создание таблицы в оракле сопровождается выделением места в табличном пространстве, создание бинарников из исходников - созданием выполнимого кода из кода программы на языке программирования. А создание процедуры - это создание именованого блока в базе. Теперь помедитируй над тем: чем отличается создание и компиляция. Это касательно оракла. При разработке приложений еще можешь подумать чем отличается компиляция и билд. А теперь аналогия: Не давать возможность создавать именованый блок кода с ошибками в базе - все равно что не давать возможность сохранить на диске код проекта, и все зависимые модули, если хотя бы один модуль содержит ошибки. Типа исходниками с ошибками могут находиться только в оперативной памяти. Dimitry SibiryakovТо, что слежение за целостностью данных с помощью констренов можно отключить, ты считаешь нормальным. И то, что слежение за целостностью метаданных невозможно включить ты тоже считаешь нормальным. Видимо, такие двойные стандарты считаются нормальными у ораклоидов...Почитай про ddl triggers + dbms_scheduler. Теперь найди хоть одного ораклиста, который сказал бы что удобно работать когда вместо того, чтобы объекты стали инвалидными - они просто удаляются. Уже дошло как это можно реализовать? С обратной стороны я надеюсь тебе не надо приводить примеры, когда разработчики Postgre хотели бы иметь такой же подход к инвалидации как в оракле. А вот этого если в ядре базы не нет - то тут уж ничего не поделаешь. Вот для затравки сырой скрипт, который нужно дорабатывать напильником (в плане drop type ... force, обработки исключений и прочего): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 07:28 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Gluk (Kazan) Фанатизм - это прежде всего неумение слушать собеседника. Именно. Уже которую страницу я говорю, что МНЕ мешает сохранение инвалидных объектов, поскольку если какой-нибудь неадекват создаст инвалидный триггер на МОЮ таблицу, то работа МОЕГО приложения накроется медным тазом. Но всё, что я могу сделать для предотвращения такой ситуации, это написать в документации "милый DBA, убей каждого, кто так поступит" и надеяться что а) DBA есть и б) читает мою документацию, поскольку никаким другим способом т.н. промышленная СУБД имярек мне предотвратить такой саботаж не даст. Ты разрабатываешь бизнес-логику на продакшен схеме? Нет? Тогда в чем проблема, если приложение перестанет работать с инвалидным триггером? Кроме того, замечу, что если триггера просто не будет, а приложение рассчитано на то, что он есть, то от этого оно не будет работать правильнее чем в случае с инвалидностью. Древнеиндийская притча«Однажды три слепых пожелали узнать, что есть слон. К ним подвели слона и предложили: одному пощупать хобот, другому — ногу, а третьему — хвост. «Ну как, теперь вы знаете, что такое слон?» — спросили их. «О, да, знаем. Это что-то мягкое и гибкое, как Змея», — ответил первый слепой. «Это что-то большое, как колонна», — отозвался второй, ощупывая ногу слона. «Это что-то тонкое и длинное, как веревка», — сказал третий». Так и ты, имея опыт работы с некоторой СУБД ограничиваешь себя ее идеологией и рассматриваешь все остальное через ее призму. Попробуй взглянуть на мир шире. И напоследок, представь такую гипотетическую ситуацию. Допустим у тебя есть кнопочка в среде разработки, которая запускает скрипт, который я указал выше и он удаляет всех инвалидов. После каждого изменения ты нажимаешь ее а потом создаешь скриптом объекты заново. С другой стороны ты можешь пользоваться другой кнопочкой, которая просто перекомпилирует всех инвалидов. По твоему первое удобнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 12:04 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Gluk (Kazan) Если инвалиды допускаются, в принципе, почему не допускать их при создании объекта? Отчего же не допускать, допускать. Но COMMIT они пережить не должны. Транзакция обязана переводить БД из одного консистентного состояния в другое. (Я тут не говорю про Оракула, который в принципе неспособен выполнить несколько DDL в одной транзакции.) Если в бизнес-операциях используется DDL - значит что-то не так в твоей консерватории. Если речь про разработку - для чего транзакции при изменении метаданных? Внимательно слушаю пример. ЛПУ меня вон в вижуал студии хоть весь из себя кривой код может быть. Однако ж - не скомпилируется. Кривая процедура - билд не пройдёт никогда. Не получится так, что в длл-ке лежит какая-то функция, которая имеет статус Invalid, и которую нельзя вызывать. Для тебя будет откровением, но процедура с ошибками и в оракле не скомпилируется . Но тем не менее может быть сохранена как и файл с исходниками в студии. Тебе удобно было бы, если б в студии нельзя было нажать кнопочку SAVE ALL до тех пор пока ты не сможешь откомпилировать весь проект? Dimitry SibiryakovИ того, кто предложит, чтобы инвалид пережил COMMIT я лично буду грызть до последнего байта. Спасибо, что в нике указал имя, я постараюсь в реальной жизни никогда не иметь с тобой дел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 12:25 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop А теперь аналогия: Не давать возможность создавать именованый блок кода с ошибками в базе - все равно что не давать возможность сохранить на диске код проекта, и все зависимые модули, если хотя бы один модуль содержит ошибки. Типа исходниками с ошибками могут находиться только в оперативной памяти. Ты смеёшься, а уродский GPSS редактор именно так и поступал. Какое такое сохранение? Код содержит ошибки - правь, потом на диск сохранишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 12:27 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
ЛПвон гляди-ка ты, у SergSuper'а в боевой базе инвалидные объекты, и оно даже так и задумывалось. Если ты в поставке сначала дропнешь объекты, а потом пересоздаешь вместо вызова перекомпиляции - читающий твой скрипт подумает, что это писал какой-то идиот. Да, требование, что инвалидов нет - будет соблюдено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 12:32 |
|
||
|
Десять главных недостатков PostgreSQL - сравнение MS SQL и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Gluk (Kazan)О ... ты ничего не слышал о v$-представлениях ??? Список v$-представлений, на которых базируется ALL_TABLES - в студию!!! Я не перестаю удивляться. Это ж насколько надо иметь завышенное самомнение, чтоб так беспардонно выставлять свою невежественность. all_tables Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. Вот текст запроса для ALL_TABLES. Что теперь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 12:53 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36727244&tid=1552787]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 163ms |

| 0 / 0 |
