SQL SERVER视图对查询效率的提高

数据库 SQL Server
SQL SERVER视图对于数据库的查询效率也能够有提高的作用,下文对SQL SERVER视图和数据库查询效率的联系作了分析讨论,供您参考。

SQL SERVER视图不仅可以实现许多我们需要的功能,而且对于SQL SERVER查询效率的提高也有帮助,下面一起来了解一下。

有两张数据表:A和B,其中A的记录为2万条左右,而B中的数据为200万条以上,现在要求以a.id=b.id为关联进行数据筛选。

为此要求,我做了个SQL SERVER视图View1,将a.id与b.id关联起来,运行该视图的查询,使用了2秒中就得到结果了。

这时又有一特殊需求:编写存储过程,该存储过程中有一个游标的循环,该循环重复1万次,在每次循环中都使用了对View1的查询。

举例如下:

循环游标体(重复1万次)

{ select @text=text from view1 whereid=@id
--其中@text,@id均为变量update form1 set text=@text where id=@id}

执行以上的存储过程,发现竟然要花费>7分钟的运算时间,进行分析后得知效率全损耗在对view1视图的扫描上,尽管单独对该视图进行查询只需2秒,但在这种情况下即需要太多的时间。

因此改进该存储过程如下:

create table #tempTab( id nvarchar(20), text nvarchar(20))

查询View1视图,将记录插入到#tempTab临时表中... 循环游标体(重复1万次)

{ select @text=text from #tempTab whereid=@id
--其中@text,@id均为变量update form1 set text=@text where id=@id}

别小瞧以上的改动,此时该存储过程只花费50秒的时间。 对于上述现象,分析如下:在多次循环对某个视图进行查询时,将会耗费大量的时间,因此将该视图的数据放在内存中进行计算会在很大程度上提高速度。
 

 

 

【编辑推荐】

sql server表格变量的用法

SQL Server变量赋值的方法

Java调用Sql Server存储过程

SQL Server创建视图的语法

SQL Server排序规则的应用

责任编辑:段燃 来源: 互联网
相关推荐

2010-07-15 15:42:38

2010-07-07 13:18:13

SQL Server视

2010-11-11 16:59:59

SQL Server视

2010-07-08 17:28:02

2010-05-26 08:47:00

索引SQL Server

2011-04-02 13:37:05

SQL Server 索引视图

2010-06-30 13:49:02

SQL Server数

2010-09-27 09:54:26

Sql Server视

2010-11-12 11:19:19

SQL Server视

2010-07-07 10:02:46

SQL Server数

2010-10-21 10:42:30

SQL Server查

2011-03-21 15:51:27

SQL执行效率

2011-04-02 17:21:29

sql server视图

2010-09-13 11:09:34

SQL SERVER分

2010-09-25 16:47:51

SQL查询

2010-10-21 10:56:29

SQL Server查

2010-10-21 11:10:57

SQL Server查

2010-11-11 17:20:51

SQL Server创

2010-07-14 10:11:30

SQL Server系

2010-11-15 16:46:49

Oracle查询效率
点赞
收藏

51CTO技术栈公众号