Postgres MSSQL

Z PostgreSQL
Skočit na navigaci Skočit na vyhledávání

Původní mail je k dohledání v konferenci pg_hackers

Zdravím všechny,

díky za veškerou pomoc. ...

Velice stručně řečeno, MS SQL dokáže optimalizovat / ignorovat redundantní, 
zbytečné tabulky ve FROM a WHERE, kdežto PostgreSQL vykoná přesně to, 
co je v SQL specifikováno ...

Několikrát jsme použili kód v T-SQL, který vypadal asi takto:

update "_tbl_tmp2"
set "LongBackPeriod" = (select count ("EPeriod") from "_tbl_tmp1" where "_tbl_tmp1"."Row" = "_tbl_tmp2"."Row");
--------------------------------------------------
from "_tbl_tmp2" tmp2, "_tbl_tmp1" tmp1
where tmp2."Row" = tmp1."Row";
---------------------------------------------------

V T-SQL se obě varianty příkazu (jedna bez FROM, druhá včetně FROM 
tj. poslední dva řádky) se provádějí stejně. V plpgsql v tomto případě 
FROM a WHERE jsou zbytečně a dochází ke zbytečnému INNER JOINu, který 
způsoboval naše problémy s výkonem.

Jsem šťastný (vlastně nadšený), že mohu nahlásit, že Win2KPro + Pg je o něco 
rychlejší než Win2Kpro + MSSQL/MSDE 

A naše procedury jsou v Linuxu (FC7) + Pg8.x 3x rychlejší než 
na Win2KPro + MSSQL/MSDE.

Díky všem za pomoc. Teď už patřím mezi věřící v PostgreSQL. :)