在数据库里通过建立视图或建立储存过程来获得同样的数据,比如:select * from tablename,哪一个的效率高些呢?请说明理由

解决方案 »

  1.   

    jiezhi(相逢何必曾相识) 说的有道理。你要看那个更高些, 如果你的视图用的SQL命令或存储过程用的命令是一样的话。 也就没什么区别,都是动态得到数据, 存储过程就是为了进行复杂的程序设计的,而视图是动态的查询,本身了没有数据,只是需要就去取。从理论上来讲,(我没有测试过,如果在delphi里执行存储过程>delphi里的命令)>视图,但不会高到哪里去。 你要考虑效率建议 做索引,我昨天测试了一整天,在一张表里用for循环,for了1700000条记录, 在没有索引的情况下查询花了35分钟, 建立了索引。
    11分钟。族索引相对来说更快些, 但空建用了很大。 
      

  2.   

    My_first(海浪):
    我没有测试过,如果在delphi里执行存储过程>delphi里的命令)>视图,但不会高到哪里去按你这么说,视图的效率还没有在delphi里使用sql语句?不会吧
      

  3.   

    (delphi里执行存储过程>delphi里的命令) and (delphi里执行存储过程>视图)
      

  4.   

    xueyin(雪莹)
    delphi里执行存储过程>视图
    能说说原因吗?
      

  5.   

    如果是select * from tablename这样取大量数据的查询,
    经常是网络传输的因素比数据库本身的查询速度因素的影响更大。这可以简单计算的,比如每条记录多少字节,XXX条记录共多少字节,
    然后估算在网络中传输的平均时间。
      

  6.   

    selete * from tablename 比 select fieldname from tablename 快得多。但是,select * from tablename不是良好的编程习惯。
      

  7.   

    楼上的各位都好象没有回答到正题啊
    为什么说delphi里执行存储过程的效率比视图(指同样的语句)好呢?能说说理由吗?