判断是否有记录的最佳SQL语句???

判断是否有记录的最佳SQL语句-------sql语句性能问题

在做WEB2.0时,用到.net 2.0 的TreeView结构,局部刷新节点。但当数据较多时,不得不考虑他的性能问题,但到底是那个性能好呢,今天抽时间在网上搜了一下,还是有收获的。
  1)select count(*) from treemenu where pid= 1 (现在的项目,是用是这种语句来设计数据树的,来判断是否存在子结点,如果有的话,则显示“+”号,以示其有子结点。当点击其子项时,再动态加载数据并用相同的方法来判断是否有子结点。)
  2)select 'X' from treemenu where pid= 1
  3)select 'X' from treemenu where exists(select 'X' from pid= 1)
  exists判断只要存在一条记录即返回,不用继续比较下去。
  对于2来说,它会把所有的字段都去匹配一次。
  第1号方案返回的结果是表treemenu中pid= 1的记录数,结果是一个统计数字。  
  第2号方案返回的结果是一个记录集,共有n条'X',n为pid= 1的记录数目,结果是一个记录集。  
  第3号方案是一个判定,如果在treemenu中存在pid= 1的记录,则结果返回一个'X',如果不存在,则结果为NULL  

现在重点是效率问题:请各位多多发表自己的看法,谢谢!
是不是方案3比较好些呢???

请给出您的答案:A:第一号方案 B:第二号方案 C:第三号方案


public createNodes(int pid)
{
  string strSql=string.format("select name,pid,(select count(*) from treemenu where pid={0}) from treemenu where pid={0}",pid);
.........................................
}

posted on 2008-05-05 20:23  鱼跃于渊  阅读(569)  评论(0)    收藏  举报

导航