使用道具 举报
原帖由 晶晶小妹 于 2008-6-20 07:56 发表 在解决问题时,有时只有想不到的问题,没有碰不到的问题。我来说一种情况,对于初学者绝对很困惑: 有两个表T1和T2,可以假设T1存放姓名、ID这些基本信息,每行较短,而T2也有ID列和一些说明、备注类信息,每行长的可能有一两千个字节。对于这两个表,使用嵌套循环连接,T1表占的块数比较少,是小表。而T2表占的块数几倍于T1,是大表。那么,应该T1做驱动表更好一些,但实际却是T2大表做驱动表更好。 一个不知道DBA还是开发,不知道这一点,为了强制小表T1做驱动表,写了类如下语句: select /*+ use_nl(t1,t2) ordered */* from t1,t2 where t1.id=t2.id; 后来这个语句造成了一些性能问题。通过了解嵌套循环的工作方式,发现这里的确是大表做驱动表好一些。 这里就说明了一个问题,都说嵌套循环要小表做驱动表,如果不知道这是为什么,这很容易造成人云亦云。这样只知其表,而不知其里,很容易影响以后在某些问题上做出的判断。
原帖由 sqysl 于 2008-5-30 12:44 发表 是的,晶晶小妹没读大学,而且没读高中,她直接去了一所计算机培训学校,由此可见,她付出的努力之多和天赋之优越,如果她的英语更好的话,我想她的水平会增长的更加快。她是个特例,她的进步快是有很多原因的:首先她天资聪明,加上后天刻苦努力,再就是一个最有利的方面就是现在的中文资料也非常多,而且质量也不错,如果往前推5年,学习难度会很大。再说了,现实中有多少人能那么聪明,能那么努力呢?而且,没读大学,她的外语也未必很差,至少我觉得她的外语应该比有些大学生好的多,希望她能加油、努力。
本版积分规则 发表回复 回帖后跳转到最后一页