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/ybhjj2005@126/blog/static/561082842007235010598/

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

MySQL视图

视图是关系型数据库重要的组成部分之一,它可以限制数据访问,简化复杂查询,保持数据的独立性,以及基于相同的数据提供不同的视图等等。本文介绍MySQL数据库视图的一...

14120
来自专栏Rgc

mysql数据库优化(三)--分区

分区:把一个数据表的文件和索引分散存储在不同的物理文件中。 特点:业务层透明,无需任何修改,即使从新分表,也是在mysql层进行更改(业务层代码不动)

29330
来自专栏黑泽君的专栏

在命令行下,Mysql显示各个端所使用的字符集命令

9520
来自专栏数据和云

循序渐进:Oracle 12.2的Sharding基础概念解读

张大朋(Lunar)Oracle 工程师 Lunar 拥有超过十年的 ORACLE SUPPORT 从业经验,曾经服务于ORACLE ACS部门,现就职于 O...

33240
来自专栏跟着阿笨一起玩NET

SQL Server通过整理索引碎片和重建索引提高速度

本文章转载:http://database.51cto.com/art/201108/282408.htm

66910
来自专栏杨建荣的学习笔记

MySQL自增列的重复值问题(r12笔记第25天)

如果需要把一台MySQL中的数据定期归档到另外一台MySQL历史库中,那么很可能会发现会有重复值的问题,导致数据导入会失败,而这个问题其实是和自增列的重复...

38160
来自专栏技术博文

MySQL SHOW PROFILE(剖析报告)的查看

前言:SHOW PROFIL命令是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量。 一、参数的开启和关闭设置 1.1 参...

34830
来自专栏跟着阿笨一起玩NET

SQL语句使用总结(二)

6010
来自专栏idba

死锁案例之二

一 前言 死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有...

10750
来自专栏PHP在线

MYSQL 优化常用方法

1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得...

36340

扫码关注云+社区

领取腾讯云代金券