From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | esaracco(at)noos(dot)fr |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: retriving views name |
Date: | 2001-10-13 18:19:41 |
Message-ID: | 20557.1002997181@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Emmanuel SARACCO <esaracco(at)noos(dot)fr> writes:
> I must retrieve views names in a very short time. what can I use.
> for the moment, I use:
> SELECT c.relname FROM pg_class c, pg_rewrite r WHERE (((c.relname !~
> '^pg_'::text) AND (r.ev_class = c.oid)) AND (r.ev_type = '1'::"char"));
If you're using a reasonably recent PG release, there's no need to join
against pg_rewrite. Just look for pg_class entries with relkind = 'v'.
> is there a more performant way to do this? (I have more than 50.000
> views in my database (those views are generated on the fly to optimize a
> search engine and keep results in memory)). I am running a sort of
> "garbage collector" via cron/psql -c every minutes to destroy views
> older than 10 minutes and I must do this very rapidly!
One must wonder why you create views at all, if you don't intend them
to stick around for long. Why not just write out the SELECTs in full?
(If you think there's some performance benefit to using a view, you are
quite mistaken.)
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Keary Suska | 2001-10-13 20:25:30 | 7.1.3 Install: createlang broken/no pg_shadow |
Previous Message | Emmanuel SARACCO | 2001-10-13 17:26:45 | retriving views name |