sql查询和视图查询区别,时间

用sql 查询只用了1秒,把sql创建成视图加上同样的条件查询出来结果需要5秒,数据库sql server 2012。多表查询,用了left join 和join 。

一、方式不同

1、sql查询:不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统

2、视图查询:视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表。

二、特点不同

1、sql查询:相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

2、视图查询:视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。


三、功能不同

1、sql查询:对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。

2、视图查询:视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。


参考资料来源:百度百科-视图sql

参考资料来源:百度百科-结构化查询语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-08-22
sql查询和视图查询区别,时间
创建视图的过程需要消耗资源和时间的,创建好了再根据条件去查找,而且视图上也没有索引,自然慢了. 视图一般用来呈现按照特定规则进行显示的内容比较合适.本回答被网友采纳
第2个回答  2014-06-26
创建视图的过程需要消耗资源和时间的,创建好了再根据条件去查找,而且视图上也没有索引,自然慢了. 视图一般用来呈现按照特定规则进行显示的内容比较合适.追问

有解决方案吗

追答

把视图的代码 贴进括号里面
select t.*
(select * a,b on .....) as t
where t.>

这样就行了.
你应该是 查出数据需要再赛选一下对吧.

追问

对,用sql直接筛选1秒就查询出来了,视图加上条件要5秒。你这个方法还是不行。要是可以创建视图索引应该可以,不过我这有几个表关联,没创建过。

追答

贴代码吧.

本回答被提问者采纳
第3个回答  2014-06-26
具体的详细的,你去查视图的资料,理解视图了,你就理解了。

简单说就是,视图是一个子查询,性能肯定会比直接查询要低(尽管sql内部有优化),所以使用视图时有一个必须要注意的,就是不要嵌套使用查询。尤其是复杂查询。

那要视图有什么用?当一个查询你需要频频的作为子查询使用时,视图可以简化代码,直接调用而不是每次都去重复写这个东西,有点高级语言中的封装的意思吧。
其实视图还有很多其他的用处,比如说你是一个系统的数据库管理员,你需要给他人提供一张表的某两列数据,而不希望他可以看到其他任何数据,这样你就可以给他建一个只有这两列数据的视图,然后把视图公布给他。
常用视图的场合应该就上述两处了,至少我经常在这两种情况下使用视图,其他地方用视图的还真不多。追问

没有解决方案吗

追答

什么解决方案?性能损失方面的解决方案?
如果是性能损失方面的解决方案,没有。
也可以说有,就是对视图的查询语句进行优化。
通常来说直接查询和查询视图是没有什么区别的(sql 本身会进行优化),除非是视图嵌套了视图,像你这样相差了这么大,我想一定是查询语句有问题(猜的)

相似回答