|
|
|
...и снова 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 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=38026876&tid=1552501]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 143ms |

| 0 / 0 |
