阅 读 文 章

讨论一下这条语句!

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(neo2718) | 时间:2007-05-27 | 浏览: 人次 ]


DB2/400中:
  SELECT * FROM TABLE1 WHERE CODITION1
  OPTIMIZE FOR 1 ROW
(在DB2/400上运行通过)
大家说说,他的好处是什么!



 neo2718 回复于:2002-05-09 17:25:39

请大家斧正:
DB2/400的确支持这个子句,当使用这条子句的时候它将使得DB2在假定仅仅只有一条记录被返回的基础上去优化此条语句。他对于语句的执行没有影响(除了影响ACCESS PATH的生成),使用这个子句的好处在于如果仅仅检索非常少的记录的时候,响应速度将比较快。为什么呢?因为: prefetch使得DB2搜集每条返回的记录的ID号,RIDS将被存储起来,这样使得DB2不用再次去读pages,那么DB2将读在一个page上的记录,这样可以减少I/O.但是在联机交易中,这将使得联机用户等待的时间较长(等待DB2获取RIDS和排序RIDS),所以即使不去prefetch(就是DB2将重读PAGES)的速度也比prefetch快。


 bigfu 回复于:2002-05-23 11:56:16

高手,佩服!!


 grx6666 回复于:2002-06-11 09:06:24

 john2688@btamail.net.cn


 lawrance 回复于:2002-07-21 18:15:23

厉害!


 hbxtbj 回复于:2002-09-09 16:21:11

XX


 selen 回复于:2002-09-30 10:16:40

分析的精辟!


 charlielou 回复于:2002-10-06 13:14:06

很少在AS400用SQL所以我无话可说。


 stephan 回复于:2002-10-12 10:32:15

neo2718,我有两个不太明白的地方,

1)RIDS是什么?是记录的物理存储地址吗?在DB2/400中它是存放在哪里的?
2)DB2/400的prefetch是在哪儿设置的?


 leo111931 回复于:2002-10-19 15:12:37

真是历害.AS/400还没有见过,不过DB2用过一段时间,只要是写程序,他的SQL与标准SQL不太一样,而且,在ES9000,R6000.WINDOWS上的也不一样.


 Pythagoras 回复于:2002-10-24 09:14:45

RID就是ROW ID,应该是页内记录的偏移量,通常是4或5字节,取决于你建表时候的定义.


 YT 回复于:2002-11-02 04:39:27

up


 Pythagoras 回复于:2004-03-27 09:48:52

NEO讲的PREFETCH应该是专指LIST PREFETCH吧,一般指定OPTMIZE FOR n ROW的话,都不会使用LIST PREFETCH的。



TAG标签 : 语句 讨论 回复 DB2 记录 DB2/400 使得 RIDS prefetch

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表
网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.newhtm.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.