|
|
|
...и снова 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?fid=35&msg=38034102&tid=1552501]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 17ms |
| total: | 157ms |

| 0 / 0 |
