DISCARD命令(简体)
更新:2007-05-07
對映章節:
http://postgresql.at.webry.info/200705/article_1.html
內容:
翻译自石井达夫先生的blog,连接见上。
正在开发中的PostgreSQL 8.3追加新命令DISCARD,用来清除连接中session的固有数据,包括以下各项:
1、SESSION AUTHORIZATION(切换到其他用户);
2、SET命令设定的选项;
3、PREPARE生成的plan;
4、打开的cursor;
5、LISTEN生成的对象;
6、plan cache;
7、临时数据表。
3是指到8.2为止没有未命名的plan无法被删除,现在可以一起删除掉。(原文如此,我并没有完全理解,因为PREPARE命令从文档看是必须为plan命名的。也许这里是说的是执行SQL语句时自动生成的plan,哪位仁兄知道请来信指正。)
6是指以session为单位将查询plan放在cache中的功能,这是在8.3中新增的。
DISCARD最有用的可能不是通常的数据库application,而是像pgpool这一类的中间件(middleware)。到目前为止,要特意截获(intercept)PREPARE命令,在自己的session中记录持有的plan,然后在session结束的时候将它们删除,而DISCARD命令的出现可以将这个处理省略。
特别注意的是,DISCARD命令不能在事务块中使用。
沒有留言:
張貼留言