Voici ma table:SELECT * à partir du tableau simple avec 50k enregistrements semble prendre 40 secondes
CREATE TABLE public.logs (
logid bigint NOT NULL DEFAULT nextval('applog_logid_seq'::regclass),
applicationname character varying(50),
loglevel character varying(10),
logmessage character varying(500),
stacktrace character varying(4096),
occurredon timestamp without time zone,
loggedon timestamp without time zone,
username character varying(50),
groupname character varying(50),
useragent character varying(512),
CONSTRAINT applog_pkey PRIMARY KEY (logid)
);
Quand je lance SELECT *...
dessus, il faut 40 secondes pour revenir sur ma 50000 lignes machine locale. J'ai la même table sur une installation locale de SQL Server, et cela prend moins d'une seconde pour renvoyer la même quantité de données.
Je suis au milieu d'une évaluation de PostgreSQL pour notre nouvelle pile et c'est très préoccupant pour moi. Pourquoi je fais mal/pourquoi PostgreSQL est si lent?
Edit:
Voici ce que je reçois de EXPLAIN (BUFFERS, ANALYZE, TIMING OFF) SELECT * FROM public.logs
:
Il semble donc que le serveur va exécuter ce dans environ 6 ms. Je suppose que cela signifie que tous les frais généraux sont dans pgAdmin III, mais comment SSMS peut-il le faire beaucoup plus rapidement?
Cette table a-t-elle un trafic important 'UPDATE' ou' DELETE'? – jmelesky
Exécutez-vous simultanément SQL Server et PostgreSQL sur votre machine? Combien de RAM avez-vous en machine? – Alex
Etes-vous sûr de répéter l'ensemble du résultat dans les deux cas? Ou est-il possible que vous ne récupériez que les premières lignes x dans SQL Server par exemple? Et si PostgreSQL n'est pas exécuté localement, il ne fait aucun doute que ce n'est pas une comparaison équitable. – sstan