“内部查询处理器错误: 查询处理器无法生成查询计划”是否是sql语句占用资源过多,该如何解决?

pengpeng5047 2012-07-27 12:15:16
执行一条sql语句,报如下错误:
com.microsoft.sqlserver.jdbc.SQLServerException: 内部查询处理器错误: 查询处理器无法生成查询计划。有关详细信息,请与客户支持服务部门联系。
数据库是sql server2008
sql语句是
select timeString,[0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23] 
from
(select startDate as timeString,avg(DATEPART(hh,startDT)) as timeField,round(sum(powerExpend),1) as param
from building.MacRoom60KPI as kpi,common.DimMacRoom as room,common.DimTime as dimTime
where startDate between '2012-03-01' and '2012-03-07'
and kpi.timeid = dimTime.id and kpi.macroomid = room.id
and city='aa' and buildingName='bb'
and room.name='cc'
group by startDate,DATEPART(hh,startDT))
AS SourceTable
pivot(avg(param)
for timeField in([0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23]))
AS PivotTable order by timeString

building.MacRoom60KPI表有835295行,
common.DimMacRoom表有213行,
common.DimTime表有8400行
请问报这种错是否意味着我的sql语句存在性能问题,该如何优化呢?
...全文
633 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2012-07-27
  • 打赏
  • 举报
回复
我遇到过的类似问题是in里面过多数据。你看看是否这个原因。如果是,尝试把这部分改成表关联或者exists
pengpeng5047 2012-07-27
  • 打赏
  • 举报
回复
谢谢,我这个可能跟你的还不太一样,我的没有用in,是个多表连接查询[Quote=引用 1 楼 的回复:]

我遇到过的类似问题是in里面过多数据。你看看是否这个原因。如果是,尝试把这部分改成表关联或者exists
[/Quote]

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧