我的问题是在我们的应用程序中,我们在MS SQL Server(2008)数据库上执行复杂SELECT
,该数据库由在使用{创建的表之间使用的几个连接(3个或更多)组成。 {1}}(每个数据透视表都有大约10 000行)。
只有PIVOT
非常快(选择只从总数中返回几行,从10,000返回50)。但是找到SELECT
或过滤的所有记录的计数要慢得多(10 000条记录大约2秒)
有没有办法加快查询总数和过滤的查询? 例如,SQL Server中的一些缓存或优化查询?
注意:我们的ASMX服务对数据库进行查询。 注意2:每个包含pivot的表都具有主键类型:uniqueidentifier
基本选择如下所示:
Count(*)
答案 0 :(得分:0)
您应该为每个Pivot使用View
来自MS文档
在视图上创建唯一的聚簇索引后,视图为 结果集立即实现并持续保存 存储在数据库中,节省了执行此代价高昂的开销 执行时的操作。