如何为micsoft SQLserver精简代码提高运维能力
来源:互联网 发布:windows rt系统下载 编辑:程序博客网 时间:2024/06/04 19:35
在设计数据库时为了减少数据冗余,一般都会按照三范式去设计,但有时我们在查询时需要通过一字段获取跟这
个字段相关联的好几个字段,但是他们又分布在不同的表中,这时候如果按照正常途径走的话需要同时查询好几张
表,不仅操作麻烦还容易出错。当然我们有捷径,把想要查询的字段都整合到一张虚拟表中,这就是视图的应用。
简单介绍
概念:视图是从若干基本表或其他视图构造出来的表,是一张虚拟的表,其内容由查询定义。同真实的表一样,
视图包含一系列带有名称的列和行数据。但是视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定
义视图的查询所引用的表,并且在引用视图时动态生成。
视图的优点:
一,视图着重于特定数据。
视图可以让用户或者程序开发人员只看到他们所需要的数据,而不需要把表中的所有信息与字段暴露出来,这样增强了数据的安全性。
二,简化数据的操作,易维护。
我们可以将经常用到的多表联合查询出来的数据,或特定的结果集定义为视图,这样就起到了模块化数据的作用。我们在使用这些数据时直接查询该视图就可以,而不用到处写长长的SQL语句,这样也起到易维护的作用。
三,视图可以限定查询数据。
比如:对于不同的用户,我们只提供部分数据给他。这样,我们就可以在视图中限定结果集,然后返回该视图给他。这样,无论用户怎么对视图定义查询条件,他也不能查询出我们不想提供给他的数据。
小小试炼
在设计机房收费系统的数据库时为了减少数据冗余,把原先的学生表,分成了两个表即卡表和学生表。卡表只存
放卡的信息,学生表只存放学生的信息。这样是遵从了三范式的要求,但是在查询信息的时候却不能像原来那样
方便,需要同时查询这两个表。所以在此尝试了视图。
1. 新建视图
2. 选择涉及到的表或视图
3. 选择各个表中需要查询的字段
4. 命名保存
5. 实际应用
和普通表一样进行查询即可。"select * from StuCardView_info where CID=@CID"
虽然视图可以给我们带来种种便利,但不意味着我们就可以滥用它。因为视图其实就是一段SQL语句,所以它的结果都是每次调用时动态生成的。如果不合理的定义视图,必然带来性能上的损耗。
下面是我们在创建视图应该要注意的几点:
1. 操作视图会比直接操作基础表要慢,所以我们尽量避免在大型表上创建视图。
2. 尽量不要创建嵌套视图,就是在视图中使用视图。这样在查询时,会多次重复访问基础表,带来性能损耗。
3. 尽量在视图只返回所需的信息,尽量不要在视图使用不需要访问的表。
4. 在大型表或者复杂定义的视图,可以使用存储过程代替。
5. 频繁使用的视图,可以使用索引视图来代替。
对视图的理解还很浅显,以上的实例也只是视图的最基本应用。其它诸如索引视图、分割视图、汇总视图等还没
具体应用过。对视图的更新操作也没尝试,需要做的还有很多。
- 如何为micsoft SQLserver精简代码提高运维能力
- 如何提高代码能力
- 如何提高编程能力
- 如何提高人际交往能力?
- 如何提高沟通能力
- 如何提高沟通能力
- 如何提高沟通能力
- 如何提高表达能力
- 如何提高概括能力
- 如何提高个人能力
- 如何提高编程能力
- 如何提高编程能力
- 如何提高程序设计能力
- 如何提高抗压能力
- 如何提高沟通能力
- 如何提高理解能力
- 如何提高语言表达能力
- 如何提高编程能力
- Java防止表单重复提交
- 啊,微积分要挂啦
- APNS导致消息丢失和发送效率原因
- 定制HTML 5Video播放器
- linux下apache安装
- 如何为micsoft SQLserver精简代码提高运维能力
- size()
- Marlin固件汉字字体更改
- 无法连接 mysql 故障分析
- Almost everything you need to know to enter mobile game development on 2013 - See more at: http://ww
- 数字语音信号处理学习笔记——语音信号的同态处理(3)
- 数字语音信号处理学习笔记——语音信号的同态处理(4)
- Making a mobile game in 24 hours
- 数组中只出现一次的两个数字之Ruby版