问delphi,sql server 查询的区别(100分)

  • 主题发起人 主题发起人 tjqzl
  • 开始时间 开始时间
T

tjqzl

Unregistered / Unconfirmed
GUEST, unregistred user!
各位能不能分析一下:1、在delphi里面直接执行查询语句;2、传参数到sql server执行查询语句;3、将整个语句传到sql server里面执行(没有试过,不知是否可以)。这3种情况有什么区别,哪个最快,采用哪个最好。 数据要返回客户端的。
 
一般情况下,使用 “传参数到sql server执行查询语句” 快点。
 
我认为你这几种方法效率都差不多。
不过要提高效率,建议使用存储过程,client端来调用该SP
 
一样,最终还是在SQLserver里运算
 
我覺得速度應該是差不多。但我們一般是使用存儲過程。
 
不完全同意楼上的说法,SP是预编译的。
 
所有你说的3中方式都是走一个东西, 那就是数据库引擎。

1,delphi中写sql直接查询, 你必须用ado,bde,dbexpress,ibx等等控件,或者其底层的对象, 而这些都是一个引擎。
“2,传参数到sql server执行查询语句”
这个我真不明白你说的是什么意思? 是指如:"select * from table1 where a1 =:a1"
嘛?
如果是这样,跟你说的第一种没有区别。 只是参数的输入方式不同,这种更加可靠,安全一点而已。
没有效率的区别。
“3、将整个语句传到sql server里面执行(没有试过,不知是否可以)”
对于你说的这个,我一点都不理解了, ADOQuery1.sql.text:='select * from table';这样的语句是不是将整个语句传到数据库里执行了??

首先, 所有的sql语句,无论你用什么方式传入,或者用什么引擎承载,总之它是到了数据库之后才被执行的。 你的exe,windows都没有这样的能力。 因为sql就是写给db的。
 
那有没有比这些更快的查询?
具体怎么实现?
 
我所知道比较快的只有用存储过程、
 
速度的的快慢不同,效率不同啦
 
后退
顶部