我被告知 SQL Native Client应该比 OLEDB 驱动程序更快。所以我把一个实用程序放在一起,在两者之间进行负载测试——结果好坏参半。有时一种更快,有时另一种更快,无论查询是什么(简单的选择、where 子句、连接、排序依据等)。当然,服务器承担了大部分工作负载,但我感兴趣的是从数据进入 PC 到数据在应用程序中可访问的时间之间的时间。
负载测试由非常小的查询组成,这些查询返回非常大的数据集。例如,我这样做select * from SysTables
了,这个表有 50,000 多条记录。收到数据后,我又对结果进行了循环加载(使用 while notQ.eof ... Q.next ...
等)。我还尝试向查询中添加一些内容——例如字段order by Val
在哪里。Val
varchar(100)
这是我的负载测试器的示例,最底部的数字是平均值...
那么实际上,两者之间有什么区别?我知道 OLE 非常灵活并且支持许多不同的数据库引擎,而 Native Client 只针对 SQL Server。但是幕后还有什么?这对 Delphi 使用这些驱动程序的方式有何影响?
这也是专门通过TADOConnection
组件使用 ADO 的TADOQuery
。
我不一定要寻找或寻求提高性能的方法——我只需要知道驱动程序之间的区别是什么。