sql server 2005中的索引,视图有什么用
答案:2 悬赏:30 手机版
解决时间 2021-01-25 05:39
- 提问者网友:相思似海深
- 2021-01-24 16:44
我是新学者,我想问sql server 2005中的索引,视图有什么用能讲详细点吗
最佳答案
- 五星知识达人网友:洎扰庸人
- 2021-01-24 17:00
索引是为了提升数据查询性能,视图一般用于给用户提供一个统一的接口而屏蔽掉无用或需要保密的信息。
一般来说,如果数据量不是太大,比如只有几万条记录,不需要建索引,索引本身也是一种数据,系统为了维护索引,是需要开销的。如果数据量非常大,就一定会用到索引技术。比如上百万、几千万的数据量。此时如果在数据表上没有索引,数据查询会非常慢。索引其实就是预先给数据排序,比如身份证号,如果在这个字段上有索引,那么从大到小都已经有序了,需要查询某一个号码,系统可以很快检索到对应的数据。
在数据库中,不是每一个级别的用户都需要全部信息,在某些时候,有些敏感的信息甚至只能给具有合适权限的人员,即便用户进入了数据库(不是指的程序界面检索,而是直接进入了数据库管理系统),也不可以让他查看全部信息,此时就可以用视图的方法,让用户只能查看他应该看的信息,真正的基础表屏蔽起来。
一般来说,如果数据量不是太大,比如只有几万条记录,不需要建索引,索引本身也是一种数据,系统为了维护索引,是需要开销的。如果数据量非常大,就一定会用到索引技术。比如上百万、几千万的数据量。此时如果在数据表上没有索引,数据查询会非常慢。索引其实就是预先给数据排序,比如身份证号,如果在这个字段上有索引,那么从大到小都已经有序了,需要查询某一个号码,系统可以很快检索到对应的数据。
在数据库中,不是每一个级别的用户都需要全部信息,在某些时候,有些敏感的信息甚至只能给具有合适权限的人员,即便用户进入了数据库(不是指的程序界面检索,而是直接进入了数据库管理系统),也不可以让他查看全部信息,此时就可以用视图的方法,让用户只能查看他应该看的信息,真正的基础表屏蔽起来。
全部回答
- 1楼网友:琴狂剑也妄
- 2021-01-24 17:25
从数据库管理系统 (dbms) 的角度看来,视图是对数据(一种元数据类型)的一种描述。当创建了一个典型视图时,通过封装一个 select 语句(定义一个结果集来表示为虚拟表)来定义元数据。当在另一个查询的 from 子句中引用视图时,将从系统目录检索该元数据,并替代该视图的引用扩展元数据。视图扩展之后,sql server 查询优化器会为执行查询编译一个执行计划。查询优化器会搜索针对某个查询的一组可能的执行计划,并根据对执行每个查询计划所需的实际时间的估计,选择所能找到的成本最低的计划。 对于非索引视图,解析查询所必需的视图部分会在运行时被具体化。任何计算(比如:联接或聚合)都在每个引用视图的查询执行时完成1。在视图上创建了唯一的聚集索引后,该视图的结果集随即被具体化,并保存在数据库的物理存储中,从而在执行时节省了执行这一高成本操作的开销。 在查询执行中,可通过两种方式使用索引视图。查询可直接引用索引视图,或者更重要的是,如果查询优化器确定该视图可替换成本最低的查询计划中的部分或全部查询,那么就可以选定它。在第二种情况中,使用索引视图替代基础表及其一般索引。不必在查询中引用视图以使查询优化器在查询执行时使用该视图。这使得现有的应用程序可以从新创建的索引视图中受益,而不必进行更改。 注意 索引视图是 sql server 2000 和 2005 各版本的一个功能。在 sql server 2000 和 2005 的 developer 和 enterprise 版本中,查询处理器可使用索引视图来解析结构上与该视图相匹配的查询,即便不按名称来引用视图。在其他版本中,必须按名称来引用视图,并对视图引用使用 noexpand 提示来查询索引视图的内容。 通过索引视图改善性能 运用索引提高查询性能不算是一个新概念;但是,索引视图提供了一些借助标准索引无法取得的性能收益。索引视图可通过以下方式提高查询性能: 可预先计算聚合并将其保存在索引中,从而在查询执行时,最小化高成本的计算。 可预先联接各个表并保存最终获得的数据集。 可保存联接或聚合的组合。 在实施索引视图前,分析数据库工作负荷。运用查询及各种相关工具(比如:sql profiler)方面的知识来确定可从索引视图获益的查询。频繁发生聚合和联接的情况最适合使用索引视图。无论是否频繁发生,只要某个查询需要很长的响应时间,同时快速获得响应的开销很高,那么就适合使用索引视图。例如,一些开发人员发现为高级主管们在月末运行的报告,创建预先计算和存储查询的应答的索引视图很有用。 不是所有的查询都能从索引视图中获益。与一般索引类似,如果未使用索引视图,就无法从中受益。在这种情况下,不仅无法实现性能改善,而且会在磁盘空间、维护和优化方面产生额外的成本。然而,当使用索引视图时,可大大改善(在数量级上)数据访问。这是因为查询优化器使用存储在索引视图(大幅降低了查询执行的成本)中预先计算的结果。 查询优化器仅考虑对具有高成本的查询使用索引视图。从而避免出现这样的情况:在查询优化成本高于使用索引视图所节约的成本时尝试匹配各种索引视图。在成本少于 1 的查询中很好使用索引视图。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯