SqlServer里面视图View得创建是不是不能用到临时表和表变量?
问题如下:1.SqlServer里面视图View得创建是不是不能用到临时表和表变量?如题。。。2.视图里面直接select获取function得到的大量表数据会有啥不好?...
问题如下:
1. SqlServer里面视图View得创建是不是不能用到临时表和表变量?
如题。。。
2. 视图里面直接select 获取 function得到的大量表数据 会有啥不好? 展开
1. SqlServer里面视图View得创建是不是不能用到临时表和表变量?
如题。。。
2. 视图里面直接select 获取 function得到的大量表数据 会有啥不好? 展开
2个回答
展开全部
1 、
视图是一个虚拟表,同表一样,视图包含一系列带有名称的列和行数据。
视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。
行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
定义视图可以来自当前或其他数据库的一个或多个表,或者其他视图。
根据以上定义,所以不能使用临时表和表变量。
2、
只要是select 中有function,都会增中计算量,查询时间增长。
视图是一个虚拟表,同表一样,视图包含一系列带有名称的列和行数据。
视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。
行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
定义视图可以来自当前或其他数据库的一个或多个表,或者其他视图。
根据以上定义,所以不能使用临时表和表变量。
2、
只要是select 中有function,都会增中计算量,查询时间增长。
追问
视图定义:
create view V_X1
as
select * from function_query();
如果这样写,影响是不是非常大? 非常不好?
追答
这样的影响,是看function_query()的写法了,此处的写法都是这样的,没有什么可以调整的地方。
2015-09-10 · 知道合伙人软件行家
关注
展开全部
1,临时表和表变量 不能直接使用
2,视图中使用function来获取了大量数据,基本就是动态处理了。计算量大增,那不如直接SQL获取。
但也不能说不使用,建议看看理论方面的分析:
http://www.cnblogs.com/SanMaoSpace/p/3147059.html
2,视图中使用function来获取了大量数据,基本就是动态处理了。计算量大增,那不如直接SQL获取。
但也不能说不使用,建议看看理论方面的分析:
http://www.cnblogs.com/SanMaoSpace/p/3147059.html
追问
直接写SQL,因为视图中没法用 表变量和临时表 所以只能写在function里面,调用function
追答
是的,就是这个意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询