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

start [/forum/topic.php?fid=35&msg=38027902&tid=1552501]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 152ms |

| 0 / 0 |
