在SQL Server 2005中,我有一个涉及大量ish连接的查询(每个表的数量级从几千行到几百万行,表的平均可能性相当于10-15列的整数和日期时间SQL Server存储过程中间表
为了加快查询速度,我在考虑将一个大查询分解为一个存储过程,该存储过程执行一些连接,存储会导致一些临时表,然后将该临时表与另一个也是几个连接结果的临时表结合在一起。
我目前使用表变量来存储中间表,以及性能o ne off明显更好。但在生产中,tempdb
似乎存在IO瓶颈。
有没有更好的方法来思考解决这样的问题?我的意思是,在这里使用表变量的方式?
你能给我们提供关于查询的更多细节吗?我不认为将单个基于集合的查询拆分为多个临时表和查询会使其更快...... – Matthew 2011-05-09 21:53:27
您的执行计划是如何看待的? – 2011-05-09 21:53:49
涉及大约8个连接。执行计划是巨大的各种合并,并寻求和扫描各种表 – 2011-05-09 21:55:20