Postgres MSSQL
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. :)