从视图中选择int列很慢

时间:2015-09-15 15:34:06

标签: sql-server performance select view sqlperformance

因此,对于一组表格,我试图为那些学生们提供一个查询速度慢(~30秒)的personIds,所以为了加快速度,我试图从中获取一个视图。 / p>

这个问题与观点有关。我有1个int列和~1,000,000行的视图。

简单:SELECT [PersonId] FROM [yoda_lat].[dbo].[person_view]

仍需要约25秒才能完成。我打算建议将这个结果缓存给为这个数据库开发的人,但我想知道我还能做些什么来加快这个速度。

创建视图后构建视图的查询是否无关紧要?我看到了为更复杂的选择添加索引的内容,但我确实试图获取该单个列的每个值,这是该视图的唯一列。

1 个答案:

答案 0 :(得分:1)

除非您从表中复制数据

,否则执行将返回100万行的SELECT是没有意义的

SELECT without WHERE子句将读取数据库表的所有数据页。这是FULLSCAN,我们试图避免这种类型的执行

实际上,您需要根据某些条件过滤数据。您可以在此表字段上创建索引。这将提高您的查询性能。