正如第27章所讲的那样,SQL Server2000允许你创建索引视图。一个索引的视图是任意在其上定义了聚集索引的视图。当一个CREATE INDEX语句在视图上执行时,视图的结果集在数据库中的组织和存储与具有聚集索引的数据表是一样的。视图中数据表上的数据发生改变将会自动反映到视图中,也会以同样的方式数据表中的变化会反映到索引中。除了聚集索引,你可以在视图上创建其他非聚集索引来提哦共另外的查询性能。视图上的额外的索引可为查询优化器提供更多的选择。
在SQL Server2000的开发版和企业版中,当一个索引视图存在于一个表中,你可以在查询中直接访问视图,优化器将自动考虑使用视图的索引来提高查询性能,就像表中的索引来提高性能一样。即使一个查询没有直接在FROM子句中使用视图名字,查询优化器也将考虑使用索引视图。换句话,当一个查询可能从索引视图中获得好处,查询优化器会替换掉表上的索引,而使用索引视图来满足查询。
SQL Server 2000的所有版本都可以创建索引,但是只有开发版本和企业版将自动使用索引视图来优化查询,这一点很重要。在其他版本中,索引视图将不会用来提高查询性能,除非查询中明确指定视图并且“NOEXPAND”优化指示也被指定。没有NOEXPAND,SQL Server将扩展视图到视图所对应的表并且基于表中的索引进行优化。下面的例子展示了使用NOEXPAND 选项来强制SQL Server来使用视图索引。
Select * from sales_Qty_Rollup WITH (NOEXPAND)
Where stor_id between 'B914' and 'B999' SET ARITHABORT ON
索引视图的确增加了负担并且可能使得SQL Server变得更复杂,因为需要比普通索引花费更多时间来维护。当索引所在的表被修改了,SQL Server不得不修改视图的结果集和视图中的索引。视图索引的范围可能比单个表要大些,特别是假如视图定义在几个大表上。在修改中维护视图及其索引所需的负担所产生的负面影响要比从其获得好处要多些。因为这些额外的维护负担,只在那些获得好处超过其维护负担的视图上创建索引。
索引视图指南
- 在表数据相对静态的视图上创建索引。
- 将被多个查询使用的视图创建索引。
- 保持索引尽可能小,就像表索引一样,越小的索引,SQL Server访问数据越高效。
- 除了开发版和企业版之外,你将需要指定NOEXPAND指示符,否则索引视图将不会用来优化查询。
分享到:
相关推荐
本教程主要关注`mui`中的索引列表(`indexedList`)和`mui.picker`组件,这两个组件在处理大量分类数据时尤其有用。 `mui.indexedList`是一个具有快速滚动索引功能的列表组件,常用于通讯录或者商品分类等场景。它...
例如,索引视图(Indexed Views)和全文索引(Full-text Indexes)是SQL Server中用于提高特定类型查询性能的高级索引特性。索引视图可以存储视图的结果集,并且可以快速检索;全文索引用于对数据库中的文本数据进行...
IndexedDB 是一种在浏览器中存储大量结构化数据的离线存储解决方案,支持索引,使得数据检索快速高效。它是Web应用程序本地存储的一种重要技术,尤其适用于需要处理大量数据的复杂应用,比如离线应用、数据密集型...
视图可以结合索引视图(Indexed View)使用,当满足特定条件时,系统会自动为视图创建索引,从而提高查询性能。此外,适当的查询优化策略,如使用合适的联接算法和使用统计信息,也能提高视图查询的速度。 八、视图...
例如,可以创建一个数据结构(如对象或数组)来存储按字母分类的信息,然后根据用户选择的字母筛选数据并更新视图。同时,CSS用于样式设计,确保字母索引和侧边栏的美观和易用性。 对于不完善的部分,可能涉及以下...
该 API 使用索引实现对数据的高性能搜索。虽然 Web Storage 在存储较少量的数据很有用,但对于存储更大量的结构化数据来说力不从心。而 IndexedDB 提供了这种场景的解决方案。 MDN官网是这样解释Indexed DB的: ...
- **索引视图(Indexed Views)**:对常被查询的复杂查询结果创建索引,提高查询效率。 - **物化查询结果(Materialized Query Results)**:预先计算并存储查询结果,适用于稳定不变或更新频率低的数据。 - **...
IndexedDB是一种非关系型数据库,它允许在浏览器中存储大量结构化数据,并支持索引,从而可以高效地查询这些数据。与传统的Web存储如Cookie和localStorage相比,IndexedDB提供了更高级别的数据管理能力。Cookie通常...
**前端存储之IndexedDB详解** 在现代Web应用中,数据存储变得越来越重要,尤其是在离线存储和大数据量处理方面。IndexedDB是浏览器提供的一种客户端存储解决方案,它允许开发者在用户的浏览器上存储大量的结构化...
这篇博文将深入探讨IndexedDB的原理、用途以及如何在实际项目中应用。 IndexedDB是一种异步的、基于键值对的数据库,不同于传统的Web存储(如localStorage和sessionStorage),它提供了更高级别的结构化数据存储...
索引像素格式(Indexed Pixel Format)是一种特殊的像素格式,它使用较少的位数来表示颜色,通常为 8 位或更少,这些值用作指向调色板的索引。调色板是一个包含所有可用颜色的小型数组。 ### 三、问题分析:无法从...
在数据库管理领域,索引视图(Indexed View)是一种优化技术,主要应用于SQL Server数据库系统,旨在提升查询性能。索引视图是预先计算并存储的查询结果,这些结果被索引,以便后续的查询可以直接利用,从而减少数据...
ISAM(Indexed Sequential Access Method)索引结构是IBM提出的一种常见实现方式,被广泛应用于各种数据库产品中。合理使用索引对于优化数据库性能至关重要。 1. **选择合适的索引类型**: - 对于频繁进行连接操作...
IndexedDB 是一种在浏览器中存储大量结构化数据的低级 API,它提供了索引和查询功能,非常适合客户端缓存。这个名为 "money-clip" 的项目似乎是一个针对 IndexedDB 的轻量级封装库,旨在简化数据管理和缓存策略,...
这个本地存储机制不同于传统的Cookie或localStorage,它允许开发者创建复杂的数据库索引,进行高效的数据检索。IndexedDB的设计目标是为了满足Web应用程序对大量数据管理的需求,比如离线应用、数据密集型Web应用等...
5. **索引(Indexes)**:IndexedDB允许为数据字段创建索引,提高查询性能。封装后,创建和使用索引可能变得更直观,比如通过`createIndex`和`getByKey`等方法。 6. **批量操作**:为了提高效率,封装的接口可能...
索引是IndexedDB中的关键特性,它可以显著提高查询效率。例如,创建一个基于某个属性的索引,然后使用该索引进行查询,将比遍历所有记录更快。索引可以是单列或多列的,也可以设置为唯一或非唯一。 ### 6. 事务处理...
Backbone.js是一个轻量级的JavaScript库,它为构建复杂的Web应用提供了一套模型-视图-控制器(MVC)架构。在Backbone.js中,数据通常存储在内存中的集合中,但为了实现持久化存储,我们可以使用适配器来对接不同的...
ANALYZE TABLE GD_YX_ZYTDYH COMPUTE STATISTICS FOR TABLE FOR ALL INDEXED COLUMNS; ``` 此命令将为表`GD_YX_ZYTDYH`中的所有列收集统计信息,并且包括所有的索引列。 2. **使用`DBMS_STATS`包**: - 收集表...