Re: Query caching
От | devik@cdi.cz |
---|---|
Тема | Re: Query caching |
Дата | |
Msg-id | 3A0BD089.4ADD47C1@cdi.cz обсуждение исходный текст |
Ответ на | Re: AW: Re: [GENERAL] Query caching (Karel Zak <zakkr@zf.jcu.cz>) |
Ответы |
Re: Query caching
|
Список | pgsql-hackers |
Did someone think about query costs ? Is you prepare query like SELECT id FROM t1 WHERE type=$1 and execute it with $1=1 and 2. For 1 there is one record in t1 a all other have type=2. Without caching, first query will use index, second not. Should cached plan use index or not ? devik Christof Petig wrote: > > Karel Zak wrote: > > > On Wed, 8 Nov 2000, Christof Petig wrote: > > > > > Karel Zak wrote: > > > > > > > > What about parameters? Normally you can prepare a statement and execute it > > > > > > > > We have in PG parameters, see SPI, but now it's used inside backend only > > > > and not exist statement that allows to use this feature in be<->fe. > > > > > > Sad. Since ecpg would certainly benefit from this. > > Postponed for future improvements ... > > > > > PREPARE chris_query AS SELECT * FROM pg_class WHERE relname = $1 USING text; > > > > > > I would prefer '?' as a parameter name, since this is in the embedded sql standard > > > (do you have a copy of the 94 draft? I can mail mine to you?) > > > > This not depend on query cache. The '$n' is PostgreSQL query parametr > > keyword and is defined in standard parser. The PREPARE statement not parsing > > query it's job for standard parser. > > I see. > > > > Also the standard says a whole lot about guessing the parameter's type. > > > > > > Also I vote for ?::type or type(?) or sql's cast(...) (don't know it's syntax) > > > instead of abusing the using keyword. > > > > The postgresql executor expect types of parametrs in separate input (array). > > I not sure how much expensive/executable is survey it from query. > > That would involve changing the parser. Future project. > > > > > EXECUTE chris_query USING 'pg_shadow'; > > > > > > Great idea of yours to implement this! Since I was thinking about implementing a > > > more decent schema for ecpg but had no mind to touch the backend and be-fe > > > protocol (yet). > > > It would be desirable to do an 'execute immediate using', since using input > > > parameters would take a lot of code away from ecpg. > > > > By the way, PREPARE/EXECUTE is face only. More interesting in this period is > > query-cache-kernel. SQL92 is really a little unlike my PREPARE/EXECUTE. > > I'm looking forward to get first experiences with the query cache kernel. I think it's > the right way to go. > > Christof
В списке pgsql-hackers по дате отправления: