索引视图是否物理存储在数据库中以及使用索引视图的一些见解
2013-09-10 16:16
375 查看
索引视图是否物理存储在数据库中以及使用索引视图的一些见解
前言这个话题我本来是写在文章里没有写在随笔里的,不过赶脚不写在随笔里其他人就看不到了,因为小弟对视图的认识不深
希望写在随笔里让大家也讨论一下这个话题
小弟在文章的结尾会把我们公司系统使用索引视图的情况告诉大家,希望大家也把你们在系统中如何应用索引视图的在评论中分享一下
让小弟也学习一下,因为小弟对于索引视图的认识也是比较浅的
视图的种类
先来看一下SQLSERVER中视图的种类
1、标准视图
2、索引视图:加了索引,在SQL2000之后提供的新功能。在视图上创建索引后,该视图的结果集随机被具体化,并保存在数据库的物理存储中。
对索引视图创建的第一个索引必须是唯一聚集索引。创建了唯一聚集索引后,才可以创建其他非聚集索引。如果删除视图,该视图的索引也被删除,
若删除聚集索引,视图的所有非聚集索引和自动创建的统计信息也被删除。删除视图的聚集索引将删除存储的结果集,并且索引视图会变为标准视图
3、分区视图:在一台或多台服务器间水平连接一组成员表中的分区数据,使数据看起来像来自一个表。依据连接数据服务器的不同,
他又分为本地分区视图和分布式分区视图。分布式分区视图用于实现数据库服务器联合
验证
为了区分标准视图和索引视图,我们分别建立一张基本表、一个索引视图、一个标准视图,两个视图都是基于那个基本表
使用下面SQL语句建立测试环境
--插入数据到基本表 INSERT INTO Users ( [UserName], [Age], [Gender], [CreateTime] ) VALUES ( N'nihao', -- UserName - nvarchar(50) 30, -- Age - int 1, -- Gender - bit '2013-08-29 03:40:36' -- CreateTime - datetime )
View Code
可以看到索引视图已经没有了
查询视图数据的时候还可以查询,证明索引视图已经退化为标准视图了
如有不对的地方,欢迎大家拍砖o(∩_∩)o
相关文章推荐
- 索引视图是否物理存储在数据库中以及使用索引视图
- 数据库是否使用外键,及视图,索引,存储过程的一些说明(zz)
- 数据库是否使用外键,及视图,索引,存储过程的一些说明(zz)
- [原]关于数据库是否使用索引的讨论,我想说的
- 使用Java实现数据库编程-Lesson5-事务、视图、索引、备份和恢复
- 关于数据库是否使用索引的讨论,我想说的
- sql 查询所有数据库、表名、表字段总结,判断表/视图/存储过程是否存在
- 【整理】SQLServer查询各种数据库对象(表,索引,视图,图表,存储过程等)
- 数据库中视图、索引、存储过程的作用
- 【数据库SQL】——聚集索引和非聚集索引根本区别以及使用方式
- 临时表操作的一些见解(解决了我在存储过程中使用临时表的困惑)
- Java学习笔记之数据库(触发器、事物、索引、投影和除、视图、存储过程和函数 )含各种链)___ 一直补充
- 查询SQLServer2005中某个数据库中的表结构、索引、视图、存储过程、触发器以及自定义函数
- 时间序列数据库——索引用ES、聚合分析时加载数据用什么?docvalues的列存储貌似更优优势一些。那分布式计算呢?ES做
- 【Scrapy-03】布隆过滤器、存储数据库以及其他一些图片爬取的技巧
- 物理数据库设计 - 文件是否应该存储在数据库中
- 28. 查找一个对象名称是否被其他对象、视图、索引、或序列使用了
- 建立ORACLE RAC数据库时所用的一些选项(使用ASM存储)
- 数据库(SQL)之trigger(触发器)的使用以及视图(view)的基本实现
- SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识