PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Site PostgreSQL.fr » postgresql Utilisation des index composés et EXPLAIN » 11/02/2014 18:23:27

merci bien gleu et arthurr c'est exactement les réponses que je cherchais smile

#2 Re : Site PostgreSQL.fr » postgresql Utilisation des index composés et EXPLAIN » 11/02/2014 11:50:56

CREATE TABLE tt (id int, fk1 int, val1 char(100));

WITH tmp AS (SELECT generate_series(1, 1000000) AS val)
INSERT INTO tt SELECT val, 1, val FROM tmp;

analyze;

EXPLAIN analyze
SELECT *
FROM tt WHERE val1 = '100';

"Seq Scan on tt (cost=0.00..29742.00 rows=1 width=109) (actual time=0.144..340.945 rows=1 loops=1)"
" Filter: (val1 = '100'::bpchar)"
"Total runtime: 341.004 ms"

CREATE INDEX idx_tt ON tt (fk1, val1);

analyze;

EXPLAIN analyze
SELECT *
FROM tt WHERE val1 = '100';

"Seq Scan on tt (cost=0.00..29742.00 rows=1 width=109) (actual time=0.170..260.504 rows=1 loops=1)"
" Filter: (val1 = '100'::bpchar)"
"Total runtime: 260.575 ms"


DROP INDEX idx_tt;

CREATE INDEX idx_tt ON tt (val1);

analyze;

EXPLAIN analyze
SELECT *
FROM tt WHERE val1 = '100';

"Index Scan using idx_tt on tt (cost=0.00..8.92 rows=1 width=109) (actual time=0.460..0.463 rows=1 loops=1)"
" Index Cond: (val1 = '100'::bpchar)"
"Total runtime: 0.517 ms"

à priori seul l'index non composé peut être utilisé pour mon cas
cela semble donc en contradiction avec http://use-the-index-luke.com/fr/sql...dex-concatenes
voir Figure 2.1. Index concaténé

#3 Site PostgreSQL.fr » postgresql Utilisation des index composés et EXPLAIN » 10/02/2014 17:16:41

bidouilles
Réponses : 6

Bonjour, j'aurais une question sur l'optimisation des index

j'ai une table avec 3 champs

le premier est la clef primaire
le deuxième n'a que des 1 dedans
le troisième à des valeurs diverses

sur cette table il y a un index unique composé sur le deuxième + troisième champs

sur cette table je fait des select where champ3 =

1) comme l'index composé n'a que des 1 dans sont premier champ peut il etre utilisé ?

2) l'ajout d'un index sur le troisième champs est il intéressant?

3) Que j'ajoute ou pas le second index, un
EXPLAIN ANALYZE de ma requête ne donne pas d'"Index Scan using" ni de "Index Cond", comment cela se fait il ?

Merci d'avance

#4 Site PostgreSQL.fr » insufficient privilege sur pg_stat_activity (=supervision SQL PgAdmin) » 25/06/2013 16:59:16

bidouilles
Réponses : 2

insufficient privilege sur pg_stat_activity (pg_stat_activity =affichage les Requêtes passées via la supervision de PgAdmin)

Bonjour,

Avec PgAdmin III et PostgreSQL en 9.1.9 avec le super utilisateur postgres j’ai bien accès en supervision aux SQL des requêtes passé dans « Outil » « Etat du serveur » colonne « Requête »
(cela est équivalent à faire : select * from pg_stat_activity;)

via le super utilisateur postgres j'ai donc fait:
GRANT SELECT ON TABLE pg_stat_activity TO UtilisateurRO;

via l'utilisateurRO
select * from pg_stat_activity;

on a acces uniquement aux requêtes de cet utilisateur

pour les autres la colonne de l’affichage du SQL de la requête « current_query » reste encore à <insufficient privilege>)

auriez vous une idée pour voir tout les sql en cours de tous les utilisateurs connecté à une base svp?

Pied de page des forums

Propulsé par FluxBB