我们有一个使用SQL Server数据库的WCF服务。服务启动时,它会将数据从数据库加载到内存中。当我们使用SQL Server 2000时,加载和上线需要1分钟,但是当使用SQL Server 2008 R2时,完成相同的任务需要8分钟以上。
从数据库加载有巨大的表。当我们检查SQL事件探查器时,从该表中检索数据需要更多时间。
我们是否必须更改SQL Server 2008中的任何设置以实现更快的数据检索,或者我们是否必须在连接字符串或其他任何位置更改WCF服务?
数据库从2000年到2008年不是升级版。它是在2008年创建的,并使用它进行了测试。
确切的查询是
SELECT a.Col1,
IsNull(a.Col2, '') Col2,
IsNull(a.Col3, '') Col3,
IsNull(a.Col4, '') Col4,
IsNull(a.Col5, '') Col5,
IsNull(b.Col2, '') bCol2
FROM Table1 a
LEFT OUTER JOIN Table2 b
ON LTrim(RTrim(IsNull(a.Col5, ''))) = LTrim(RTrim(IsNull(b.Col1, '')))
ORDER BY a.Col1
我注意到,使用“Order by”条款与没有“Order by”相比花费更多时间需要4秒。所以,我在Table1.Col1上添加了一个聚集索引来查看任何更改,仍然需要大约8分钟的更多时间
系统详细信息:Windows 7 32位,Corei5,3GB内存
SQL 2008版本详细信息: Microsoft SQL Server 2008 R2(RTM) - 10.50.1617.0(Intel X86)2011年4月22日11:57:00版权所有(c)Windows NT 6.1上的Microsoft Corporation Developer Edition(Build 7601:Service Pack 1)
有人帮我们解决这个问题。