日期:2014-05-17  浏览次数:20513 次

同一个实例下进行跨库查询05和08执行效率为什么有巨大差异
jdbc连接数据库执行以下语句:
use db select column from object
设以上语句执行耗时为A;
select [db].[owner].[object].[column] from [db].[owner].[object]
设以上语句执行耗时为B;
在05下A:B约等于1:26+
在08下A:B约等于1:1.2+
是否有办法优化05使其执行效率接近08?
由于工作原因,我的查询必须支持跨库,server名作为可选参数,所以05下这样的执行效率是绝对无法接受的,所以求优化。

------解决方案--------------------
升级DBS?
------解决方案--------------------
2005 跨库查询慢吗? 从来没有觉得啊 
应该是测试数据不准确导致的乌龙
------解决方案--------------------
05和08是两个不同的产品,08在性能上又有所改进,所以05的大部分应用在08上性能会有所提高。

如果直接从05上还原到08数据库而不更新统计信息,SQL Server可能无法生成正确的执行计划导致效率不高,更新以后可能性能会变好。
------解决方案--------------------
探讨

试想05下一个数据库用最简单的跨库查询语句查询一个空表竟然有超过150毫秒的服务器处理时间,这如果是正常的,那谁还会去用05?