|
|
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Тема возможно поднималась неоднократно, но за 2 часа чтения форума ответа на свой вопрос так и не нашел. Какие преимущества PostgreSQL 9.0 над MSSQL 2008 R2? Если они есть. Сам с PostgreSQL никогда не работал, но человек убеждает, что эта СУБД круче и предлагает остановится на ней. Интересуют мнения людей которые использовали оба продукта. P.S. Что планируется. База размером 20-40Гб, нагрузка в пике 250-300 подключений, работать будет скорее всего под WinServer 2003. База для фин.организации, соответственно никаких varbinary/IMG/ntext полей не будет. P.S.S. Вопрос цены не стоит, лицензия на MSSQL есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 00:16 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
derevyankoal Какие преимущества PostgreSQL 9.0 над MSSQL 2008 R2?Какой ты однако непонятливый: человек убеждает, что эта СУБД круче А если серьезно. Приложению совсем совсем пофиг куда подключатся? Что говорят авторы? Чья пятая точка будет страдать если база задуркует? (не по вашей вине конечно, просто так совпало с фазой луны) Кто и сколько человек будут поддерживать вашу базу? А если ваш гуру будет в отпуске? Короче вопрос совсем совсем не технический. И да, слоном я не пользовался, так что моим мнением можно не интересоватся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 04:08 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
SERG1257Короче вопрос совсем совсем не технический. Насчет того, что вопрос не совсем технический, я знаю. Изначально стоял вопрос разработки на MS SQL, но один из разработчиков очень рекламирует PostgreS. О преимуществах MS SQL я в курсе(я с ним работаю), а с PostgreS не работал вообще. Почему собственно и задал вопрос тем, кто работал в обеими продуктами. Может в PostgreSQL маштабируемость лучше, скорость, может "фичи" какие есть аля Oracle, может он не падает никогда или его освоить можно за 2 дня... и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 11:55 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
derevyankoalSERG1257Короче вопрос совсем совсем не технический. Насчет того, что вопрос не совсем технический, я знаю. Изначально стоял вопрос разработки на MS SQL, но один из разработчиков очень рекламирует PostgreS. О преимуществах MS SQL я в курсе(я с ним работаю), а с PostgreS не работал вообще. Почему собственно и задал вопрос тем, кто работал в обеими продуктами. Может в PostgreSQL маштабируемость лучше, скорость, может "фичи" какие есть аля Oracle, может он не падает никогда или его освоить можно за 2 дня... и т.д. Ничего этого там нет. Из плюшек в отличие от MS SQL, первое - бесплатность, второе - родная версионность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 14:20 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
derevyankoalИзначально стоял вопрос разработки на MS SQL, но один из разработчиков очень рекламирует PostgreS. Если в конторе лицензионный MS и к нему прилагается хорошо дрессированный админ, то каким боком в команду разработчиков затесался слоновий красноглазик, да ещё и голос подаёт? Уволить его нахрен и нету проблемы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 16:34 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
derevyankoal... работать будет скорее всего под WinServer 2003 . ... P.S.S. Вопрос цены не стоит, лицензия на MSSQL есть. В вашем случае оставляйте выбор на MSSQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 22:08 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
бесплатность и родная версионносИз плюшек в отличие от MS SQL, первое - бесплатность, второе - родная версионность. Дедушка Фрэйд был бы доволен фразой... Кроме бесплатности и родной (интересно кому и зачем) версионности - других плюшек нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 22:50 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Только MSSQL! Финансовая организация, странно что вы вообще такие вопросы задаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 23:00 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovУволить его нахрен и нету проблемы. +100500. derevyankoal О преимуществах MS SQL я в курсе(я с ним работаю), а с PostgreS не работал вообще. Ну так и пользуйте его. К тому же если есть лицензия. p.s. Сам, давно работаю с Oracle и MSSQL, и проблем не знаю. Начинал с IB 6.5 потом FB, но волей судьбы перешел на Oracle, а потом и MSSQL. Сейчас иногда, по непонятным мне причинам, тянет освоить Слона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2012, 18:45 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
derevyankoalТема возможно поднималась неоднократно, но за 2 часа чтения форума ответа на свой вопрос так и не нашел. Какие преимущества PostgreSQL 9.0 над MSSQL 2008 R2? Если они есть. Сам с PostgreSQL никогда не работал, но человек убеждает, что эта СУБД круче и предлагает остановится на ней. Интересуют мнения людей которые использовали оба продукта. P.S. Что планируется. База размером 20-40Гб, нагрузка в пике 250-300 подключений, работать будет скорее всего под WinServer 2003. База для фин.организации, соответственно никаких varbinary/IMG/ntext полей не будет. P.S.S. Вопрос цены не стоит, лицензия на MSSQL есть. "Круче" только яйца, да и то если сварены. ;-) А так, оба сервера хороши. Оба легко справятся с Вашими нагрузками. Как программист работал и с тем, и с тем. Лично мне больше нравиться PostgreSQL. Это не значит, что MS SQL хуже, просто мне в PostgreSQL удобнее. Как DBA... Ну в MS SQL репликация и кластеризация "из коробки", в PostgreSQL придется "пошаманить". Да и в администрировании - PostgreSQL настраивать посложнее будет, зато если настроить, то внимания к нему поменьше, чем к MS SQL надо. PostgreSQL может работать практически на любом сервере (грубо говоря, там где есть возможность запустить Linux, то там скорее всего можно запустить и PostgreSQL). MS SQL только на Windows. А так, пусть "крутой" специалист подготовит экономическое обоснование для перехода с MS SQL на PostgreSQL. Как говориться "иннициатива наказуема исполнением" ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2012, 14:18 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
> *Какие преимущества PostgreSQL 9.0 над MSSQL 2008 R2?* Если они есть. Их нет. Если не считать что PG бесплатный, и что там есть объектные расширения (наследование таблиц). А, ещё тонкий момент -- возможность выполнять запрос (один) параллельно. MSSQL умеет, PG -- не знаю... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 01:40 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
> Ничего этого там нет. Из плюшек в отличие от MS SQL, первое - бесплатность, > второе - родная версионность. Она по сравнению с "неродной" мало что даёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 01:41 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
> *Какие преимущества PostgreSQL 9.0 над MSSQL 2008 R2?* Если они есть. Сори, забыл ещё одно преимущество PostgreSQL -- кроссплатформенность. Но это может быть не очень и важно -- есть винда в 64 бита. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 01:44 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
MasterZiv > *Какие преимущества PostgreSQL 9.0 над MSSQL 2008 R2?* Если они есть. Их нет. Если не считать что PG бесплатный, и что там есть объектные расширения (наследование таблиц). А, ещё тонкий момент -- возможность выполнять запрос (один) параллельно. MSSQL умеет, PG -- не знаю... В PG нету InraQuery Parallelism. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 03:07 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Ведь наверняка в этой финорганизации уже стоит 100500 МС-ных серверов и скоре всего нету ни одного постгриса. ЗАЧЕМ разводить зоопарк на ровном месте??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 15:49 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
бесплатность и родная версионнос Из плюшек в отличие от MS SQL, первое - бесплатность, второе - родная версионность. Не только. Например FOR EACH ROW триггеры, секвенции (в отличие от MSSQL 2008), весьма навороченная работа с массивами (зачем - это другой вопрос). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 10:03 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVвесьма навороченная работа с массивами (зачем - это другой вопрос). Ну ч/з массивы делаются "цикличные" запросы. ;-) Да и массивы, и способность создавать свои типы, очень приятная плюшка. Например тип MAC-адрес и IP-адрес. :-) В том же MS SQL только TSQL и есть, а в PotsgreSQL можно подключить например Java и писать процедуры на ней. Так что плюшек у PostgreSQL много, но они не сравнимы с MS SQL. Насчет производительности... В году эдак 2002-2004 существовала "пузомерка", по которой PostgreSQL работал в 100 раз быстрее чем MS SQL. Это ни о чем не говорит, но MS SQL-щики были всегда "не приятно удивлены". :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 11:46 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgul Ну ч/з массивы делаются "цикличные" запросы. ;-) Да и массивы, и способность создавать свои типы, очень приятная плюшка. Мне больше нравятся табличные типы в MSSQL (не помню, есть ли такое в PG), хотя они там и не доделаны, блин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 11:54 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulспособность создавать свои типы, очень приятная плюшка. Например тип MAC-адрес и IP-адрес. :-)это плюшка, не отличие mad_nazgulВ том же MS SQL только TSQL и есть, а в PotsgreSQL можно подключить например Java и писать процедуры на ней. а .NET можно прикрутить к ПГ? К MSSQL можно mad_nazgulНасчет производительности... очень смешно ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 11:57 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зайцев Фёдор mad_nazgulНасчет производительности... очень смешно ) Если учесть, что до 2005 в MSSQL с блокировками было всё оч. плохо, то, вероятно, можно придумать такой тест, в котором PG сильно опережает MSSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:00 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVmad_nazgulНу ч/з массивы делаются "цикличные" запросы. ;-) Да и массивы, и способность создавать свои типы, очень приятная плюшка. Мне больше нравятся табличные типы в MSSQL (не помню, есть ли такое в PG), хотя они там и не доделаны, блин. В PG любая таблица - тип. Кроме того есть наследование. Кроме того, можно создавать свои типы. Кроме того вы в хранимой функции можете определить выходным параметром Recordset, с заданными столбцами и обращаться к ней как к таблице (Курсор не нужен!) Зачем табличные типы?! P.S. Работал и с тем, и с тем. Как программисту мне PostgreSQL больше нравиться, но это не значит что MS SQL плох. Просто "плюшки" PostgrSQL для меня удобнее, чем "плюшки" MS SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:02 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulВ году эдак 2002-2004 существовала "пузомерка", по которой PostgreSQL работал в 100 раз быстрее чем MS SQL. Это ни о чем не говорит, но MS SQL-щики были всегда "не приятно удивлены". :-) Ну если это TPC тесты, то о чем то может говорит в принципе. Но что-то PG, вроде, там и в 2002-2004 не было, на скока помню. Хотя мож и пропустил: все же это может и не говорит ни о чем для обычных проектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:06 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:17 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зайцев Фёдорmad_nazgulспособность создавать свои типы, очень приятная плюшка. Например тип MAC-адрес и IP-адрес. :-)это плюшка, не отличие mad_nazgulВ том же MS SQL только TSQL и есть, а в PotsgreSQL можно подключить например Java и писать процедуры на ней. а .NET можно прикрутить к ПГ? К MSSQL можно Для PostgreSQL в принципе нет "принципального" запрета на использование .NET в хранимых процедурах. API открыт, так что при желании и кучи свободного времени можно добавить еще один язык (C#) для написания хранимых процедур. Проблема в том, что это никому не надо. Даже доступ к БД (npgsql) еще не допилен до нормального состояния. Зайцев Фёдорmad_nazgulНасчет производительности... очень смешно ) Как раз смешно, т.к. было правдой! ;-) Это я к тому, что всегда можно подобрать набор тестов, где та или иная СУБД будет "на коне" по сравнению с остальными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:18 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVmad_nazgul Зачем табличные типы?! Вот здесь говорится зачем. О чем я и говорил :-) В PostgreSQL это давно есть и используется, только чуть-чуть по другому. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:21 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulFreemanZAVпропущено... Вот здесь говорится зачем. О чем я и говорил :-) В PostgreSQL это давно есть и используется, только чуть-чуть по другому. :-) Насколько я знаю, в PG есть временные таблицы, которые можно создавать на "лету", конкретно такой реализации табличных типов нет. Я могу ошибаться, но хотелось бы как здесь говорят "тынц". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:24 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVНасколько я знаю, в PG есть временные таблицы, которые можно создавать на "лету", конкретно такой реализации табличных типов нет. Я могу ошибаться, но хотелось бы как здесь говорят "тынц". Для этого есть 1) Типы 2) Recordset 3) Наследование Грубо говоря я могу создать тип и возвращать его множество. Либо я могу создать хранимую функцию и возвращать Recordset, столбцы задаются выходными параметрами функции. P.S. Спорить смысла не вижу, т.к. Вам "плюшки" MS SQL более значимы, чем для меня. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:48 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgul Грубо говоря я могу создать тип и возвращать его множество. Либо я могу создать хранимую функцию и возвращать Recordset, столбцы задаются выходными параметрами функции. И над всем этим можно выполнять операции DML? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:51 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulFreemanZAVНасколько я знаю, в PG есть временные таблицы, которые можно создавать на "лету", конкретно такой реализации табличных типов нет. Я могу ошибаться, но хотелось бы как здесь говорят "тынц". Для этого есть 1) Типы 2) Recordset 3) Наследование Грубо говоря я могу создать тип и возвращать его множество. Либо я могу создать хранимую функцию и возвращать Recordset, столбцы задаются выходными параметрами функции. P.S. Спорить смысла не вижу, т.к. Вам "плюшки" MS SQL более значимы, чем для меня. :-)спорить не надо, но хотелось бы какой-то пример как оно выглядит на разных СУБД это действительно было бы полезным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 13:04 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVИ над всем этим можно выполнять операции DML? Если только обернуть во View. Над View можно делать DML, только правила нужно прописать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 13:11 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Да еще наследование. Т.е. можно создать потомка другой таблицы. Причем с потомка могут быть видны данные как родителя, так и потомка. Т.е. "плюшки" у PostgreSQL, они то что можно в MS SQL в PostgreSQL тоже можно, но чуть-чуть подругому :-) Если хотите узнать о "плюшках" PostgreSQL то dfv сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 13:18 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulFreemanZAVИ над всем этим можно выполнять операции DML? Если только обернуть во View. Над View можно делать DML, только правила нужно прописать. Честно - не понял. Табличные типы используются в процедурах. Т.е. получается, что в PG в plsql коде надо нечто обернуть во view, прописать правила, а потом уже использовать? Мне кажется это не оч. удобным. Большой плюс табличных типов в MSSQL как раз в том, что достаточно только объявить переменную (синтаксис схож с create table, можно и индексы определить), а потом пользоваться ей как обычной таблицей. И никаких дополнительных познаний в tsql не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 14:59 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVсинтаксис схож с create table, можно и индексы определить индексы определить нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:10 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зайцев ФёдорFreemanZAVсинтаксис схож с create table, можно и индексы определить индексы определить нельзя Ну, это в стиле майкрософт. Всегда что-нибудь не доделают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:12 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зайцев ФёдорFreemanZAVсинтаксис схож с create table, можно и индексы определить индексы определить нельзя интересно, unique constraint без индексов работают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:14 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVЗайцев Фёдорпропущено... индексы определить нельзя интересно, unique constraint без индексов работают? А нет, вроде бы с индексами. Т.е. индекс определить можно, но через ж... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:15 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVЗайцев Фёдорпропущено... индексы определить нельзя интересно, unique constraint без индексов работают? ограничения реальзованы через индексы, можно даже указать index option, но определить индексы всё равно нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:17 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зайцев ФёдорFreemanZAVпропущено... интересно, unique constraint без индексов работают? ограничения реальзованы через индексы, можно даже указать index option, но определить индексы всё равно нельзя Ну суть не меняется. Определить нельзя, но создать можно. Если нужен индексный поиск, то его несложно реализовать . Или mssql не будет этот индекс использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:21 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVНу суть не меняется.вообще-то меняется. индексы получится создать только уникальные, без включаемых полей и т.п. FreemanZAVИли mssql не будет этот индекс использовать? могут быть использованы индексы, созданные для ограничаний. всё как с табличными переменными, т.е. план может быть несколько неожиданным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:29 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зайцев Фёдорвообще-то меняется. индексы получится создать только уникальные Это легко обходится. Ничто не мешает создать составное ограничение, где второе поле будет уникальным - например identity. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:33 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVЧестно - не понял. Табличные типы используются в процедурах. Т.е. получается, что в PG в plsql коде надо нечто обернуть во view, прописать правила, а потом уже использовать? Мне кажется это не оч. удобным. Большой плюс табличных типов в MSSQL как раз в том, что достаточно только объявить переменную (синтаксис схож с create table, можно и индексы определить), а потом пользоваться ей как обычной таблицей. И никаких дополнительных познаний в tsql не нужно. В pgsql есть rowtype, который позволяет определить переменную по таблице. Честно говоря, по Вашему описанию выглядит как "костыль". Т.е. мне никогда не требовалось в прецедуре объявлять переменную, которая вела себя как таблица. Есть таблица, есть DML. Если нужны какие-то более сложные манипуляции, всегда можно объявить переменную типа rowtype и использовать ее, ну или ч/з хранимые функции. А про view... Можно для любого view задать действия на insert и update. Соответственно view, для внешнего пользователя, ничем не будет отличаться от таблицы. Очень удобно. :-) Опять же "на прямую" PostgreSQL и MS SQL сравнивать не имеет смысла, т.к. PostgreSQL может сделать все что и MS SQL, но чуть-чуть по другому :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:36 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgul В pgsql есть rowtype, который позволяет определить переменную по таблице. Честно говоря, по Вашему описанию выглядит как "костыль". Не нравится моё описание - я привёл другое. mad_nazgulТ.е. мне никогда не требовалось в прецедуре объявлять переменную, которая вела себя как таблица. Значит, наверное, надо сообщить майкрософту, чтоб убрала этот функционал нафиг. mad_nazgulЕсли нужны какие-то более сложные манипуляции, всегда можно объявить переменную типа rowtype и использовать ее, ну или ч/з хранимые функции. ROWTYPE - это по сути запись, как этот тип можно сравнивать с табличными переменными? Табличные переменные - это не одна запись, а по сути своей таблица. mad_nazgulА про view... Можно для любого view задать действия на insert и update. Соответственно view, для внешнего пользователя, ничем не будет отличаться от таблицы. Очень удобно. :-) Всё таки опять не понял. Причём здесь view, если речь речь идёт о табличных переменных? Как можно сравнивать представления и процедурное расширение? Это вещи из разных опер. mad_nazgulОпять же "на прямую" PostgreSQL и MS SQL сравнивать не имеет смысла, т.к. PostgreSQL может сделать все что и MS SQL, но чуть-чуть по другому :-) Что чуть-чуть, я бы не сказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:58 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulТ.е. мне никогда не требовалось в прецедуре объявлять переменную, которая вела себя как таблица. Это потому, что ты не натыкался на тормоза с таблицами. Переменные не нуждаются в локах (которые у MS на каждом первом шагу). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:07 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovmad_nazgulТ.е. мне никогда не требовалось в прецедуре объявлять переменную, которая вела себя как таблица. Это потому, что ты не натыкался на тормоза с таблицами. Переменные не нуждаются в локах (которые у MS на каждом первом шагу). Собственно в ссылке, которую я привёл, об этом сказано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:09 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVНе нравится моё описание - я привёл другое. По нему у меня вопрос возник "Зачем?!" FreemanZAVЗначит, наверное, надо сообщить майкрософту, чтоб убрала этот функционал нафиг. Если я говорю "Зачем?", это не значит, что оно не нужно совсем, это значит, что оно не нужно мне. Вам например очень нужно, мне не очень. FreemanZAVROWTYPE - это по сути запись, как этот тип можно сравнивать с табличными переменными? Табличные переменные - это не одна запись, а по сути своей таблица. Зачем?! Если есть таблицы? Т.е. зачем переменные которые ведут себя как таблицы, когда есть таблицы, которые ведут себя как таблицы. :-) FreemanZAVВсё таки опять не понял. Причём здесь view, если речь речь идёт о табличных переменных? Как можно сравнивать представления и процедурное расширение? Это вещи из разных опер. О чем и речь! Зачем нужны табличные переменные? Если нужна таблица, я использую таблицу. Зачем создавать "Самурая без меча, который подобен самураю с мечем, только без меча"?! FreemanZAVЧто чуть-чуть, я бы не сказал. Вы бы не сказали, а я вот сказал. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:12 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgul Если я говорю "Зачем?", это не значит, что оно не нужно совсем, это значит, что оно не нужно мне. Вам например очень нужно, мне не очень. "Зачем", популярно описано в ссылке, которую я привёл. Ну а Дмитрий одну из причин сформулировал по русски. Если этого мало, то вот ещё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:17 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovmad_nazgulТ.е. мне никогда не требовалось в прецедуре объявлять переменную, которая вела себя как таблица. Это потому, что ты не натыкался на тормоза с таблицами. Переменные не нуждаются в локах (которые у MS на каждом первом шагу). Понятно... Для PostgreSQL это не нужно. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:22 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulЗачем?! Если есть таблицы? Т.е. зачем переменные которые ведут себя как таблицы, когда есть таблицы, которые ведут себя как таблицы. :-)вы что-то путаете - нужны таблицы, которые ведут себя как переменные. у вас такие есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:23 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgul FreemanZAVЧто чуть-чуть, я бы не сказал. Вы бы не сказали, а я вот сказал. ;-) Я могу привести в пример оператор merge. В postgre можно извернуться, но ничего похожего на merge не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:24 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulDimitry Sibiryakovпропущено... Это потому, что ты не натыкался на тормоза с таблицами. Переменные не нуждаются в локах (которые у MS на каждом первом шагу). Понятно... Для PostgreSQL это не нужно. :-) А как, например, многократно использовать какую-нибудь тяжёлую выборку, если в PG подзапросы не материализуются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:28 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVА как, например, многократно использовать какую-нибудь тяжёлую выборку, если в PG подзапросы не материализуются? Временные таблицы для этого есть. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:31 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovFreemanZAVА как, например, многократно использовать какую-нибудь тяжёлую выборку, если в PG подзапросы не материализуются? Временные таблицы для этого есть. Собственно тынца я и просил всю дорогу. А мне говорили про какие-то view. Я просто подзабыл, что механизм временных таблиц в PG не такой, как в oracle, например. В PG есть LOCAL TEMP TABLE ON COMMIT DROP, что вполне может заменить табличные переменные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:49 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVDimitry Sibiryakovпропущено... Временные таблицы для этого есть. Собственно тынца я и просил всю дорогу. А мне говорили про какие-то view. Я просто подзабыл, что механизм временных таблиц в PG не такой, как в oracle, например. В PG есть LOCAL TEMP TABLE ON COMMIT DROP, что вполне может заменить табличные переменные Хотя не уверен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 17:03 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVВ PG есть LOCAL TEMP TABLE ON COMMIT DROP, что вполне может заменить табличные переменные и в качестве параметра функции можно передать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 17:04 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зайцев ФёдорFreemanZAVВ PG есть LOCAL TEMP TABLE ON COMMIT DROP, что вполне может заменить табличные переменные и в качестве параметра функции можно передать? Нет необходимости. Таблица будет видна всем вызываемым функциям (хотя не очень кошерно). Но, в отличие от табличных переменных, таблица не будет Readonly. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 17:08 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVТаблица будет видна всем вызываемым функциям (хотя не очень кошерно). Функция, обрабатывающая заранее неизвестную таблицу, некошерна сама по себе. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 17:51 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovFreemanZAVТаблица будет видна всем вызываемым функциям (хотя не очень кошерно). Функция, обрабатывающая заранее неизвестную таблицу, некошерна сама по себе. Нет в жизни совершенства. В PG нет табличных переменных, в MSSQL они есть, но передать их по человечески в другую функцию нельзя. А касаемо вопроса про табличные переменные в MSSQL: mad_nazgul Зачем?! Если есть таблицы? Тот же вопрос можно задать про массивы в PG. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 21:12 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVА как, например, многократно использовать какую-нибудь тяжёлую выборку, если в PG подзапросы не материализуются? Зависит от плана, может и материализовать :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 21:58 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
ЁшFreemanZAVА как, например, многократно использовать какую-нибудь тяжёлую выборку, если в PG подзапросы не материализуются? Зависит от плана, может и материализовать :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. а если он еще сотни строчек занимает? А если он результат нескольких запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 23:10 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зайцев Фёдорвы что-то путаете - нужны таблицы, которые ведут себя как переменные. у вас такие есть? Зачем?! Когда есть 1) Таблицы 2) Функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 07:29 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVА как, например, многократно использовать какую-нибудь тяжёлую выборку, если в PG подзапросы не материализуются? Э-э-э.... А в чем проблема использовать тяжелую выборку? Как минимум план запроса строиться и последующие запросы к такой выборке будут быстрее. Т.е. ощущение, что табличные переменные - "костыль" меня не покидают. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 07:34 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зайцев ФёдорFreemanZAVВ PG есть LOCAL TEMP TABLE ON COMMIT DROP, что вполне может заменить табличные переменные и в качестве параметра функции можно передать? Можно... вот только как массив. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 07:37 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovFreemanZAVТаблица будет видна всем вызываемым функциям (хотя не очень кошерно). Функция, обрабатывающая заранее неизвестную таблицу, некошерна сама по себе. Наследование ;-) Т.е. можно обрабатывать только то что известно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 07:39 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgul Э-э-э.... А в чем проблема использовать тяжелую выборку? Чтобы понять, в чём проблема тяжёлых выборок, можно например почитать про хинт materialize в oracle - что он делает и для чего он нужен. mad_nazgulТ.е. ощущение, что табличные переменные - "костыль" меня не покидают. :-) В сущности как и массивы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 09:41 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulЗайцев Фёдорвы что-то путаете - нужны таблицы, которые ведут себя как переменные. у вас такие есть? Зачем?! Когда есть 1) Таблицы 2) Функции Ещё раз могу объяснить. Табличные переменные по сути являются временными таблицами, только их можно объявлять внутри процедур как переменные и передавать из процедуры в процедуру. Зачем нужны временные таблицы объяснять надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 09:49 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
ЁшFreemanZAVА как, например, многократно использовать какую-нибудь тяжёлую выборку, если в PG подзапросы не материализуются? Зависит от плана, может и материализовать :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Да, ошибался. Умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 10:10 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVЁшпропущено... Зависит от плана, может и материализовать :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Да, ошибался. Умеет. Хотя процесс не управляемый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 10:17 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVЕщё раз могу объяснить. Табличные переменные по сути являются временными таблицами, только их можно объявлять внутри процедур как переменные и передавать из процедуры в процедуру. Зачем нужны временные таблицы объяснять надо? Чем массивы плохи? Создавай какие хочешь типы записей и перегоняй массивами как и куда хочешь. Код: sql 1. 2. 3. 4. 5. 6. Свёртка и развёртка таблицы из массива ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 12:07 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Вместо массива типов записей конкретной таблицы можно подставить любую запись, которая описана как составной тип. Не хочется объявлять типы - можно создать двумерные массивы текста и, передавая в/из процедуру, преобразовывать во что хочешь. Это несколько громоздко, но тоже правомерно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 12:12 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНВместо массива типов записей конкретной таблицы можно подставить любую запись, которая описана как составной тип. Не хочется объявлять типы создавать таблицы - можно создать двумерные массивы текста и, передавая в/из процедуру, преобразовывать во что хочешь. Это несколько громоздко, но тоже правомерно. FIXED ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 12:27 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН Чем массивы плохи? Создавай какие хочешь типы записей и перегоняй массивами как и куда хочешь. Не поддерживают DML, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 12:54 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVОКТОГЕН Чем массивы плохи? Создавай какие хочешь типы записей и перегоняй массивами как и куда хочешь. Не поддерживают DML, например. Я уже вроде говорил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 12:55 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVmad_nazgulТ.е. ощущение, что табличные переменные - "костыль" меня не покидают. :-) В сущности как и массивы Ну массивы идут от концепции ООБД. PostgreSQL как бы ООБД (хотя и не совсем) Соответственно в нем можно реализовать любой тип, в том числе и массив Так что это не костыль, а вполне концептуальное решение. Вопрос только в другом, на сколько концепция ООБД соотноситься с СУРБД. Думаю это уже философский вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 10:44 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
mad_nazgulFreemanZAVпропущено... В сущности как и массивы Ну массивы идут от концепции ООБД. PostgreSQL как бы ООБД (хотя и не совсем) Соответственно в нем можно реализовать любой тип, в том числе и массив Так что это не костыль, а вполне концептуальное решение. Вопрос только в другом, на сколько концепция ООБД соотноситься с СУРБД. Думаю это уже философский вопрос. Ну тогда костылём можно считать всю концепцию ООБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 11:28 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVFreemanZAVпропущено... Да, ошибался. Умеет. Хотя процесс не управляемый .какбе CTE до последнего всегда именно и только материализовывался. будет ли это изменено - не уверен. т.е. если хотите материализовать - делаете через CTE (WITH) если на усмотрение оптимайзера - то через подзапрос "в старом стиле". т.е. жесткая "управляемая" материализация через CTE существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 12:21 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
ЁшFreemanZAVА как, например, многократно использовать какую-нибудь тяжёлую выборку, если в PG подзапросы не материализуются? Зависит от плана, может и материализовать :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. а что, CTE в постгресе уже можно не материализовывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 12:23 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
PS табличные @@переменные конечно вкусная штука т.ч. зря некоторые от них отпихиваются но временные таблицы в PostGres ведут себя очень шустро. (некие минимальные дисковые в системных таки происходят, что печалька). -- я через них обходился как-то для хранения диких декартовых - для комбинаторных упражнений. И DML какой хотите, и DDL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 12:30 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
какбеFreemanZAVпропущено... Хотя процесс не управляемый .какбе CTE до последнего всегда именно и только материализовывался. будет ли это изменено - не уверен. т.е. если хотите материализовать - делаете через CTE (WITH) если на усмотрение оптимайзера - то через подзапрос "в старом стиле". т.е. жесткая "управляемая" материализация через CTE существует. Ну управляемость весьма условна. В CTE (WITH) материализация не управляема таки. Т.е. если есть хороший индекс, то PG будет материализовывать, вместо того, чтобы этот индекс использовать . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 12:36 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
какбеPS табличные @@переменные конечно вкусная штука т.ч. зря некоторые от них отпихиваются но временные таблицы в PostGres ведут себя очень шустро. (некие минимальные дисковые в системных таки происходят, что печалька). -- я через них обходился как-то для хранения диких декартовых - для комбинаторных упражнений. И DML какой хотите, и DDL. Ну тему "табличные переменные vs временные таблицы" мы уже обсудили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 12:38 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVкакбепропущено... какбе CTE до последнего всегда именно и только материализовывался. будет ли это изменено - не уверен. т.е. если хотите материализовать - делаете через CTE (WITH) если на усмотрение оптимайзера - то через подзапрос "в старом стиле". т.е. жесткая "управляемая" материализация через CTE существует. Ну управляемость весьма условна. В CTE (WITH) материализация не управляема таки. Т.е. если есть хороший индекс, то PG будет материализовывать, вместо того, чтобы этот индекс использовать .какбе тут вы полностью хозяин на этапе написания, есть хороший индекс - тождественное преобразование CTE в "старый стиль" доступно и автомату -- (REPLACE все вхождения алиаса CTE на его же содержимое с алиасом, но не префикс, а постфикс), а не токмо кодеру с минимальным навыком копипаста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 12:57 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
какбеFreemanZAVпропущено... Ну управляемость весьма условна. В CTE (WITH) материализация не управляема таки. Т.е. если есть хороший индекс, то PG будет материализовывать, вместо того, чтобы этот индекс использовать .какбе тут вы полностью хозяин на этапе написания, есть хороший индекс - тождественное преобразование CTE в "старый стиль" доступно и автомату -- (REPLACE все вхождения алиаса CTE на его же содержимое с алиасом, но не префикс, а постфикс), а не токмо кодеру с минимальным навыком копипаста. А рекурсия как-же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 14:01 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVкакбепропущено... какбе тут вы полностью хозяин на этапе написания, есть хороший индекс - тождественное преобразование CTE в "старый стиль" доступно и автомату -- (REPLACE все вхождения алиаса CTE на его же содержимое с алиасом, но не префикс, а постфикс), а не токмо кодеру с минимальным навыком копипаста. А рекурсия как-же? Или union? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 14:03 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVкакбепропущено... какбе тут вы полностью хозяин на этапе написания, есть хороший индекс - тождественное преобразование CTE в "старый стиль" доступно и автомату -- (REPLACE все вхождения алиаса CTE на его же содержимое с алиасом, но не префикс, а постфикс), а не токмо кодеру с минимальным навыком копипаста. А рекурсия как-же?ну вы уж как-то опредилитесь, или вам CTE +индекс хороший(т.е. без мат-ции), или итерационный CTE - который по определению - с материализацией итераций. Какой уж вам тут-то "индекс кароши" может помешать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 20:19 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
пардон, но пришлось потереть разборки в песочнице между двумя оппонентами, поскольку это не очень красило их обоих люди, ну зачем вам это? зачем бросаться грудью на продукты, к созданию которых вы не имеете никакого отношения? ради чего друг дружку оскорблять? неужели это лучше чем сказать что-то приятное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2012, 14:23 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
И всё же хотелось бы уточнить. Например если есть таблица table1 с сотнями миллионов записей и с уникальным индексом field_1, то в запросе Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. PG будет материализовать все сотни миллионов записей? P.S. Вопрос чисто технический. Без иронии и попыток умаления достоинств PG. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 09:44 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAVИ всё же хотелось бы уточнить. Например если есть таблица table1 с сотнями миллионов записей и с уникальным индексом field_1, то в запросе Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. PG будет материализовать все сотни миллионов записей? P.S. Вопрос чисто технический. Без иронии и попыток умаления достоинств PG. ответ для 9.1 таков ( у меня по случаю завалялась тестовая таблица на лям записей, но не такая как у вас): Код: plsql 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. -- видим, что PG не называет это "materialize" но прямо "CTE", при этом CTE в нем есть темповая таблица. (что видно при рассмотрения плана рекурсий). Поэтому для PG пока надо таки так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. если конечно не рассматривать сразу правильного: Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 12:41 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
тысячи их -- видим, что PG не называет это "materialize" но прямо "CTE", при этом CTE в нем есть темповая таблица. Ок. Вопросов больше не имею. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 14:10 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FreemanZAV, CTE в PostgreSQL пока реализован просто как синтаксис, его оптимизацией пока никто не занимался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 16:31 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Славный холивар идет во всю?? :) На деле в корпоративном мире CIO принимают решения так: - Лучшие ОПТИМИЗАТОРЫ SQL-запросов: Oracle и MS SQL - Лучший транзакционный движок ЗАПИСИ - Oracle - Лучший легкий SQL-сервер для массовой обработки записей без сложных запросов - MySQL - Самые старшие сертификаты для гостайны - PostgreSQL Вот собственно и весь холивар. Выбор делается по алгоритму try case Бабло Когда денег чуть более чем до фига - Oracle Когда нет сложной записи в БД и бабла поменьше - MS SQL Сайты и простой SaaS бесплатно или почти бесплатно - MySQL catch Exception Секьюрность с "бамажками" - PostgreSQL Стандарт - то что стандарт END Именно так CIO будут делать выбор, размахивание руками кодеров и пузомерки рассматриваются чуть менее чем полностью как аргумент не влияющий на принятие решения :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2012, 21:57 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
MicrosoftProjectRU, Возможно это CIO и спашивал Возможно он не знает что он CIOo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2012, 22:47 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Решение примет в терминологии Microsoft так называемый TDM - Technology Decision Manager. Обычно это CIO, он может спросить совета у своего программиста, но на деле он спросит советов и в других местах. Также логика CIO МЕНЕДЖЕРСКАЯ, а не кодерская. CIO (и TDM) не будет обращать внимание на стенания кодеров. Он как раз будет смотреть в БРЕНДЫ. Дело в том, что это ассоциирование с портфелями выполненных вендоров проектов, т.е. это РАБОТАЕТ не в теории и пузомерках, а на ПРАКТИКЕ. Переубедить CIO и TDM можно только примерами внедрений. Причем внедрения должны иметь ЭКОНОМИЧЕСКУЮ привлекательность, т.к. важно не только что достигли, но и КАК БЫСТРО и КАК ДОРОГО. С учетом сказанного весь холивар лишен смысла, т.к. скорее всего решение будет принято на другом уровне и другими методами и по другим мотивам, нежели чем тут обсуждалось. Чтобы повлиять на TDM нужно тащить КЕЙСЫ. А тут как раз нет ни слова об этом. Поэтому CIO просто поставит перед фактом кодера о выбранной платформе и еще будет злится, что ему в выборе кодер не помог. Он-то хотел примеров внедрений со сроками/деньгами по факту, а не примеров кусков кода на которые ему наплевать с высокой башни его кресла "насяльника". :) Говорите на одном языке с бизнесом и станете богаче, джентльмены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2012, 23:52 |
|
||
|
...и снова MSSQL 2008 R2 vs PostgreSQL
|
|||
|---|---|---|---|
|
#18+
MicrosoftProjectRUГоворите на одном языке с бизнесом и станете богаче, джентльмены. Так ТС-у это в самом начале топика и говорили. Пусть "новатор" покажет что PostgreSQL "круче" MS SQL в виде экономического обоснования. :-) Просто потом начался простой холивар PostgreSQL vs MS SQL, который к сабжу никакого отношения не имеет, зато было весело. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 07:24 |
|
||
|
|

start [/forum/topic.php?all=1&fid=35&tid=1552501]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
103ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 209ms |

| 0 / 0 |
