Je ne connais pas PosteGRE, mais je connais assez bien Oracle et SQL Server.
Pour ces deux denriers :
- Requêtes imbriquées : Beaucoup plus lent que des jointures dans la plupart des cas. Celà dépends surtout des index crées et si les clés étrangères sont correctement indiquées. Mais dans l'absolu, une requête imbriquée peut être plus de deux fois plus lente qu'une jointure (en effet, si tu fait la jointure correctement, sur des tables avec une clé étrangère, le requête ne porte pas sur les données, mais sur l'index, ce qui équivaut à faire une unique requête sur une seule table - l'index se comportant comme une table en fait) La requête imbriquée quant à elle nécessite une première requête, le tri des résultats, puis une seconde requête en se basant sur les résultats précédents. Donc sur une base correctement configurée, c'est beaucoup plus lent. Ceci dit, je ne connais pas les limitations de PosteGRE.
- Varchar et Char. A nouveau, dans une base Oracle ou SQL Server, au niveau logique, oui, le varchar est non contraint, mais dans l'absolu, les données sont stockées avec des vides pour combler la place (un varchar(32) prends 32 caractères de longs, ce qui fait que les traîtements sont aussi rapides. Sous Oracle et SQL Server, varchar (varchar2 pour Oracle) sont d'ailleurs préconisés.
- Pour ce qui est de l'auto-commit, l'optimiseur a raison. Ceci dit, sur un bon SGBD, même avec l'auto-commit activé, les différences de perfs sont minimes. En effet, tout étant journalisé, le serveur ne flush pas la base tant qu'un autre requête ne se sert pas des nouvelles données, donc les perfs restent identiques par rapport à un auto-commit off (ça c'est la théorie) L'avantage de l'auto-commit, c'est quand même qu'en cas de crash, tu ne perds aucune donnée. Sans l'auto-commit, tu perds tout. Il vaut donc mieu analyser ça au niveau des besoins de cohérence de la base plutôt qu'en terme de perfs (y'a un moment où il faut privilégier la stabilité par rapport aux perfs)
Le mieu serait quand même qu'une personne qui connaisse bien PosteGRE voient si les points que j'ai énoncé sont plus ou moins vrais avec PosteGRE. En effet, je le redis, d'ue SGDB à l'autre, ça peut changer du tout au tout.