SQLServer中使用索引视图(物化视图)

物化视图:以前用的普通的视图,普通视图就是一段逻辑语句,对性能没有任何的提升,也不能创建索引,而物化视图会把视图里查询出来的数据在数据库上建立快照,它和物理表一样,可以创建 索引,主键约束等等,性能会有质的提升,但是其有缺点,会占用,可以设置它定时自动更新一次,也可以手动更新,当然也是可以设置及时更新的,但是会拉慢基表的增删改查操作,在这里我只讲思路,具体的话大家可以自己去研究。

+ ?




--创建物化视图,每天晚上22:00:00自动更新

create materialized view
VM_PSNPERSONINFO

refresh force
on demand start with
sysdate next
to_date( concat( to_char( sysdate+1,‘dd-mm-yyyy‘),‘ 22:00:00‘),‘dd-mm-yyyy hh24:mi:ss‘)

as

SELECT dt.personid, c.employeeid,d.unitcode,d.unitname,d.label,

       dt.unitid,dt.startdate,dt.enddate

  FROM
(

         SELECT
DISTINCT b.personnelid personid,SUBSTR (a.effectdate, 1, 10) startdate,

         MIN
(CASE WHEN a.effectdate < b.effectdate THEN
b.effectdate ELSE
N‘9999-99-99‘
END) AS
enddate,

         MIN
(a.adjustresult) unitid

         FROM
psnadjust a LEFT
JOIN psnadjust b

         ON
a.personnelid = b.personnelid

         WHERE
a.adjusttype = ‘2‘
AND b.adjusttype = ‘2‘

         GROUP
BY b.personnelid, a.effectdate

        ) dt

       INNER
JOIN psnaccessioninfo c

           ON
c.personid = dt.personid

       INNER
JOIN orgstdstruct d

           ON
d.unitid = dt.unitid

ORDER BY employeeid, unitcode, startdate;

  

http://www.cnblogs.com/zhxhdean/archive/2011/05/16/2047795.html

http://blog.163.com/[email protected]/blog/static/561082842007235010598/

http://www.cnblogs.com/liuzhendong/archive/2011/10/10/2205744.html

SQLServer中使用索引视图(物化视图),布布扣,bubuko.com

时间: 2024-10-11 00:02:46

SQLServer中使用索引视图(物化视图)的相关文章

oracle 静态视图 物化视图

搜了几分钟才找到一篇靠谱的文章,原来搜 静态视图 出来一堆,现在谷歌也变傻了?都改名 物化 呵呵旧文章估计都因无人访问 系统升级沉入海底了.快清明了 给这些 夭亡的技术文章烧点纸钱! 原文链接:http://www.bitscn.com/pdb/oracle/200904/160511_5.html 物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询

SQLServer中使用索引视图

在SQL Server中,视图是一个保存的T-SQL查询.视图定义由SQL Server保存,以便它能够用作一个虚拟表来简化查询,并给基表增加另一层安全.但是,它并不占用数据库的任何空间.实际上,在你查询它之前,视图并不做任何事情. 索引视图 在SQL Server 2000和2005中,你能够给视图增加索引.但是,如果视图只是一个保存在数据库中的查询定义,在运行前没有自己的数据,你如何给那个定义建立一个索引呢?嗯,这比较麻烦. 索引视图是一个已被物化或保存在数据库中的视图.当基本表更新时,给视

sqlserver中 事物 索引及视图

  事务 1.什么是事务 事务是一个不可分割的工作逻辑单元,它包含了一组数据库的操作命令,并且所有命令作为一个整体一起向系统提交或撤销操作请求,即要么都执行,要么都不执行 2.事务的4个属性 (1).原子性(Atomicity):事务是一个完整的操作,事务个元素不可分 (2).一致性(Consistency):当事务完成时,数据必须处于一致状态 (3).隔离性(Isolation):对数据进行修改的所有并发事务时彼此隔离的,这表明事务必须时独立的,它不应该以任何方式依赖于或影响其他事务 (4).

物化视图,索引视图,函数索引,创建索引时使用DESC

老板交给的一个任务,搜了一下资料,觉得还是总结一下比较好.假如以后用到了呢?围绕两个主题:一是视图上能够建索引,二是在创建索引时是否可以使用DESC关键字. 一.能否在视图上创建索引 因为普通的视图并没有存储实际的信息,它所操作的数据来自于基本表,所以在普通视图上不可以创建索引. 在oracle中执行如下的语句,会报"视图不适用于此处"的错误 create view test_car as select license from cars; create index index_vew

oracle 物化视图及创建索引

物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询.这样对整体查询性能的提高,并没有实质上的好处. 1.物化视图的类型:ON DEMAND.ON COMMIT 二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性:而ON COMMIT是说,一旦基表有了C

【转】Oracle之物化视图

原文地址:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询.这样对整体查询性能的提高,并没有实质上的好处.1.物化视图的类型:ON DEMAND.ON COMMIT 二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视

物化视图(转)

物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询.这样对整体查询性能的提高,并没有实质上的好处.1.物化视图的类型:ON DEMAND.ON COMMIT 二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性:而ON COMMIT是说,一旦基表有了CO

物化视图的刷新(转载)

转载源自于:http://czmmiao.iteye.com/blog/1827254 物化视图 物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照.物化视图可以基于表查询,视图和其它的物化视图.通常情况下,在复制环境下,物化视图被称为主表,在数据仓库中称为明细表.对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的.如果你想修改本地副本,必须用高级复制的功能.当你想从一个表或视图中抽取

《oracle每天一练》Oracle之物化视图

相关帖子思考和跟踪 本文转自Ronger 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询.这样对整体查询性能的提高,并没有实质上的好处.1.物化视图的类型:ON DEMAND.ON COMMIT 二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性: