问题标签 [indexed-view]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
198 浏览

sql - 不确定我是否了解索引视图在 SqlServer 中的幕后功能

我正在使用 sql server 2008 并且已经开始发现使用索引视图可以帮助我加快一些查询......因为我的架构不是基本的。

所以,如果我有一个如下表......

所以对于父表中的每一行,它可以有零到多个子表。

首先,如果我对孩子进行索引视图,如果 ParentId 归档可以为空,它将不起作用。所以我需要使它成为必需的。

现在的问题。

我有一个子表内部连接到父表的索引视图(请注意,我只是索引任一表中的一些字段)...

现在,这 5 个字段的数据是否再次序列化/复制到另一个位置?还是索引视图只创建一些索引 id,即表的数据?

0 投票
2 回答
243 浏览

sql-server - 查询/数据库优化:如何优化?(我应该使用物化视图吗?)

我有一个关于如何优化查询的问题。实际上,由于我要经常运行查询,我正在考虑使用物化视图或索引视图(这是一个好主意吗?)或非规范化。

考虑以下四个表(省略了不相关的字段):

  • 用户(int userId)
  • 组(int groupId)
  • GroupMemberships (int userId, int groupId, bool isSharing)
  • 计算机(int userId)

关系是一个用户可以拥有 0..n 台计算机(一个用户对多台计算机)并且可以是 0..n 个组的成员。一个组可以有 0..n 个用户(许多用户对许多组)。“isSharing”表示用户是否正在与该组共享,或者是该组的“只读”成员(即,可以看到共享成员的计算机,但不能共享她自己的)。

查询是为给定用户查找该用户可以看到哪些计算机。用户可以看到她自己的所有计算机。她还可以查看属于她的成员并与该组共享的组中的其他用户的任何计算机。好的,这没有多大意义,所以这是 O(n^3) psudocode 中的目标:

现在我正在使用 ORM 映射器并基本上执行上述操作(我对整个 SQL 事情不太擅长),但这显然是一个不太理想的解决方案。我在此处列出的每个字段(isShared 除外)上都有索引,在 GroupMembership 的 (userId, groupId) 元组上有一个额外的索引。但是那里的任何数据库向导都可以想到更好的解决方案吗?

该项目尚未上线,但我猜每个用户平均可能有 1.2 台计算机(每个人都有一台,少数人可能有更多),每个用户可能有 0.75 个组成员资格(许多用户不会使用这些组功能,但这样做的人可能是多个组的成员)。此外,所有这些关联的表都将频繁添加,这可能会使物化视图成为不太实用的解决方案。我正在使用 SQL Server 2008。

谢谢,一切顺利,罗伯特

0 投票
1 回答
1196 浏览

sql-server-2008 - 当我更改索引视图的架构时,为什么我的索引会被删除?

服务器:MS Sql Server 2008

当我创建一个索引视图..然后我更改视图的架构时,索引都被删除了。

太烦人了!

有人可以解释这是为什么吗?起初我认为这可能是因为索引所需的字段不再在模式中(我们只是改变了它,对吗?)....但是当索引字段在视图模式中的所有时候。 ..它应该把索引留在那里。

反正..咆哮咆哮咆哮...

只是希望有人可能对此有所了解。

0 投票
2 回答
4855 浏览

sql-server - SQL Server 2005 索引筛选功能

有人告诉我,SQL Server 2005 中有一个新功能,称为索引过滤器。

我想要做的是将索引添加到列并让索引忽略空值。

我找不到有关此功能的好信息(也许我的来源是错误的)。谁能提供有关此功能的其他信息?

0 投票
3 回答
29601 浏览

sql - 索引如何作用于视图?

有人可以用简单的英语向我解释一下视图索引是如何工作的吗?我对表上的索引有一个相当简单的理解;索引视图的工作方式与让基础表上的索引自然地做他们的事情有何不同?

0 投票
2 回答
6187 浏览

sql-server-2008 - MS SQL Server 2008 中索引视图的性能影响

有人有在 MS SQL Server 2008 中使用索引视图的经验吗?我试图找出索引视图如何影响插入/更新语句的性能,这些语句正在添加/更新表中的行,这些行正在被索引视图使用(假设索引视图是将几个表连接在一起的选择)。鉴于作为视图的底层选择结果的所有数据都已编入索引,我猜测在添加/更改某些内容时必须有一些“触发器”在幕后更新这些索引数据。但是,我无法找到有关此问题的任何有用信息。

0 投票
3 回答
1515 浏览

sql-server - 对索引视图进行大量更新

我们有一个跨三个大表运行的索引视图。其中两个表 (A & B) 不断更新用户事务,另一个表 (C) 包含需要每周更新一次的数据产品信息。该产品表包含超过 600 万条记录。

对于我们的核心业务流程,我们需要跨这三个表的视图,不幸的是我们无法更改这方面。我们甚至有一个 sql server MVP 来帮助在负载下进行测试,以确保我们拥有最有效的配置。产品表中有一个列在视图中被使用,并且必须每周更新。

我们现在遇到的问题是,随着我们针对表 A 和 B 的事务量增加,对表 C 的更新导致死锁。

我尝试了几种不同的方法都无济于事:1)我希望我们可以更改视图,以便表 C 可能是脏读“WITH(NOLOCK)”,但显然该功能不适用于索引视图。

2) 我考虑过在表 C 中更新一个新列,然后在该过程完成后重命名它,但由于视图中的依赖性,您不能这样做。

3) 我还考虑将这个值写入临时产品表,然后针对视图运行 ALTER 语句以使其指向我的新表。然而,当我这样做时,我视图上的索引被删除了,重新创建它们需要相当多的时间。

4)我们尝试以小块(一次小至 100 条记录)进行每周更新,但我们仍然遇到死锁。

问题:

a) 我们使用的是 sql server 2005。sql server 2008 的索引视图是否具有对我们有帮助的新功能?现在有没有办法使用索引视图进行脏读?

b)更改现有视图以指向新表的更好方法?

谢谢!

0 投票
1 回答
612 浏览

sql-server-2005 - SQL 2005 索引视图上的全文索引填充性能

我创建了一个索引视图:

在 SQL 2005 Standard SP3 上,在该视图上填充全文索引需要很长时间,因为全文索引对视图中的每一行执行以下查询:

我假设COLUMN FULLTEXTALLandCOLUMN FULLTEXTKEY实际上是Valueand ID,但这就是 SQL Server Profiler 所显示的。问题是查询计划对大约 11M 行/1GB 数据使用聚集索引扫描,因为它不使用视图上的索引。我曾尝试为该查询创建计划指南,但由于它不是标准的 T-SQL 查询,因此不允许这样做 ( Incorrect syntax near the keyword 'FULLTEXTKEY')。

有没有办法让这个全文索引工作,除了:

  • 升级到运行良好的 SQL 2008(或 SQL 2005 Enterprise)。
  • 在基础表上创建唯一 ID 和覆盖索引。

升级将需要服务器停机,并且可能需要新的 SQL Server 许可证,同时创建唯一 ID 和覆盖索引会浪费大量空间,因为只有 11M 行中的一个子集需要全文索引(LRVS_VALUE通常NULL或具有非常短的文本价值)。

0 投票
1 回答
819 浏览

sql - 创建索引视图时出错

我认为计数栏有问题。

查询类似于此 MSDN 示例:http: //msdn.microsoft.com/en-us/library/ms191432.aspx

当我尝试编译视图时,我收到如下错误消息:“无效的列名 ModuloColAColB”

所以我按列名更改组:

View 正在正确编译,但是当我尝试添加索引时,我收到错误:

当我删除“ ColumnA % ColumnB AS ModuloColAColB”时,一切正常。

数据库版本:SQL server 2005 企业版。

0 投票
1 回答
588 浏览

sql - NHibernate 和索引视图(物化视图)

最近我正忙于使用 NHibernate 实现分页功能,并且使用简单实体的事情进展顺利,但是我遇到了那些需要多个连接才能获取请求页面的性能问题。除此之外,如果查询可以按约定执行而不使用所有扭曲的别名和连接,则实现会简单得多。

所以我想到了所谓的索引视图物化视图,它们可以解决这两个问题(或者至少是性能问题),但是我找不到任何关于如何使用 NHibernate 来解决问题的指南或信息?问题更复杂,因为某些实体的数据更新/插入非常频繁,因此可能需要急切更新,这可能是一个性能问题。

有什么建议吗?

谢谢