当你有超过100个子句时,如何优化SQL查询

时间:2015-08-31 09:34:09

标签: sql-server sql-server-2008 sql-server-2012

目前,我有一个名为vStoreProduct的视图,其中包含以下列

DOEntry   |  StoreID  | UpcCode | Value 

现在我的用户过滤StoreIDUpcCode通常我有超过500个商店和超过700个UpcCode。

在我的前端或用户界面中,用户可以选择任何内容,即

  • 所有商店&所有产品
  • 某些商店或某些商品

现在结果SQL查询是这样的

select count(*) from vStoreProduct where StoreID in ( ..................) and 
UpcCode      in (.....................)

目前,即使计数超过3分钟,也可以查看500,000条记录。

这是最好的方法还是你会推荐别的东西。

由于

1 个答案:

答案 0 :(得分:0)

vStoreProduct中的代码是什么?它只是一个(或多个)基表的简单选择,还是包含更多逻辑,这是导致缓慢的根本原因?如果它很复杂,你可以使用索引视图吗?

如果视图很简单,您使用的字段是否已编入索引?您是否已查看统计信息输出或检查执行计划中的繁重操作(表/索引扫描,对大量行,线轴的排序和键查找)。

如果视图包含500 000行,那么当需要3分钟时,您获取了多少行?基表中有多少行?

相关问题