使用数据透视表的计数(*)更快

时间:2013-08-09 07:11:50

标签: sql sql-server caching pivot asmx

我的问题是在我们的应用程序中,我们在MS SQL Server(2008)数据库上执行复杂SELECT,该数据库由在使用{创建的表之间使用的几个连接(3个或更多)组成。 {1}}(每个数据透视表都有大约10 000行)。

只有PIVOT非常快(选择只从总数中返回几行,从10,000返回50)。但是找到SELECT或过滤的所有记录的计数要慢得多(10 000条记录大约2秒)

有没有办法加快查询总数和过滤的查询? 例如,SQL Server中的一些缓存或优化查询?

注意:我们的ASMX服务对数据库进行查询。 注意2:每个包含pivot的表都具有主键类型:uniqueidentifier

基本选择如下所示:

Count(*)

1 个答案:

答案 0 :(得分:0)

您应该为每个Pivot使用View

来自MS文档

  

在视图上创建唯一的聚簇索引后,视图为   结果集立即实现并持续保存   存储在数据库中,节省了执行此代价高昂的开销   执行时的操作。