问题标签 [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 回答
690 浏览

sql-server - 对另一个表求和的 SQL Server 索引计算列

我想有效地添加一个计算列,它将另一个表中选定行的列相加。我需要快速检索和搜索计算列中的值,而无需重新计算总和。

我想添加的计算列在 Dream-SQL 中如下所示:

当然,这是行不通的。我的理解是您不能添加引用另一个表的计算列。但是,索引视图似乎可以包含这样的列。

该项目基于实体框架代码优先。应用程序需要快速找到非零余额。

假设索引视图是要走的路,将其与 Invoices 和 Transactions 表集成以使其易于与 LINQ to Entities 一起使用的最佳方法是什么?索引视图应该包含 Invoices 表中的所有列还是仅包含 Balance(持久化的内容)?用于创建推荐视图和索引的 SQL 代码片段会很有帮助。

0 投票
2 回答
558 浏览

sql-server - 使用索引视图获取最新记录

我正在从事一个监控项目,每次收集数据时,我都会为该集合生成一个新 ID。

我想在索引视图中有最新的代码。

像这样的东西:

这是可能的还是有其他选择?

这就是我打算使用它的方式:

表 [dbo].[monit_server_space_by_drive] 的主键由三个字段组成:

表定义:

以下是此表包含的数据的示例。每次我为连接收集数据时,THE_ID 都会增加一。在同一个 THE_ID 中,我拥有环境中的所有服务器。

在此处输入图像描述

0 投票
1 回答
194 浏览

sql - 查询索引视图时的 WHERE 子句性能

我使用如下代码(简化)创建了一个索引视图(以节省非常耗时的聚合时间):

在此视图上执行 SELECT * 需要一秒钟。但是以下查询需要 30 秒(如果包括更多年份,则更糟):

执行计划表明它实际上使用的是基础表而不是视图(更准确地说,它似乎使用的是 DailyAssignments 表的聚集主键而不是视图的索引)。视图上的 SELECT * 按预期使用索引。

我在其他领域没有同样的问题。以下还使用视图的索引并在不到一秒的时间内完成:

谁能帮我理解发生了什么?

0 投票
1 回答
3889 浏览

sql - SQL Server 中实体化视图的等价物

我们在 Oracle 中有一个叫做物化视图的东西,我们在 SQL Server 中有没有类似的东西。在google上做了一些发现,感觉Indexed Views可以和它有些相似。任何人都可以用 Oracle 的物化视图和 SQL Server 的索引视图之间的区别来强调我吗?

0 投票
1 回答
2508 浏览

sql-server - 替代联合和子查询来创建索引视图

当我在 SQL Server 上运行此查询以创建索引视图时,删除子查询和联合出现错误

任何人都可以提出替代解决方案来替换UNION和子查询吗?

0 投票
1 回答
4513 浏览

sql - 如何避免此子查询并创建索引视图?

我使用 SQL Server 2008。我有下表“预测”。

我尝试使用每个 Budget_Code 的最后一个“预测”创建一个索引视图,即具有最高时间戳的预测(每个 Budget_Code 一个或多个行)。

所以我做了以下查询:

但我有以下错误:

无法在视图“OperationPlanDB.dbo.LastForecasts”上创建索引,因为它包含一个或多个子查询。考虑将视图更改为仅使用联接而不是子查询。或者,考虑不索引此视图。

如何避免此子查询并使用最新预测索引我的视图?

0 投票
1 回答
1197 浏览

sql - 如何在 SQL Server 中创建索引视图

我正在尝试构建索引视图但返回重复键错误,有什么建议吗?在对视图进行分组时,我不能使用原始表的主键。

非常感谢,

乔纳森

错误:

消息 1505,级别 16,状态 1,第 1 行
CREATE UNIQUE INDEX 语句终止,因为为对象名称“dbo.bvw_Grouped_Delphi_optimised”和索引名称“IX_Delphi_Holidex_Code”找到重复键。重复键值为 (ASDKE, 2014-03-24)。

@usr:

0 投票
2 回答
2907 浏览

tsql - TSQL 无法在视图上创建索引 - 视图使用从字符串到日期时间的隐式转换

SQL 服务器 2008 r2

我正在尝试创建索引视图,但是出现以下错误

无法在视图 '' 上创建索引,因为视图使用从字符串到日期时间或 smalldatetime 的隐式转换。使用具有确定性样式值的显式 CONVERT。

问题出在一个 INT 列 [GPSTime] 上,它记录了从“1970-01-01 00:00:00”开始的秒数,我正在尝试将其转换/转换为日期时间,例如

或者

或者

上面三个选项中的每一个都给了我前面提到的错误。

这是解决方法吗?

0 投票
1 回答
61 浏览

sql - 获取表统计信息的更好方法

我正在开发 SQL Server 2012 Express 和开发人员版(带有最新的 Service Pack)解决方案。

在我的数据库中,我有一个CODES带有代码的表。该表有一FLAG指示代码已被打印读取删除。代码按另一列分组,LEVELCODES表有CODELEVEL作为主键

我将很快更新表 CODES,如果我确实SELECT COUNT(code) FROM CODES WHERE FLAG=1要读取所有代码,有时我会阻止该表,当我们有很多行时,SELECT COUNTCPU 会达到 100%。

所以,我有另一个表,STATISTICS用于存储codes已打印、读取或删除的数量。当我更新CODES表中的一行时,我将 1 添加到STATISTICS表中。我试过这两种方法:

UPDATE更新CODES表后的语句。

带有一个TRIGGER在 CODES 表中。

但在这两种情况下,我都丢失了数据。运行我的程序后,我检查CODES表格和STATISTICS表格,统计数据不匹配:我打印的代码和读取的代码STATISTICSCODES表格中的少。

这是STATISTICS我现在使用的表:

顺便说一句,我更新和插入的速度非常快(一分钟超过 1200 行)。

知道发生了什么或我怎样才能做得更好?

0 投票
2 回答
806 浏览

sql - 具有自己的 Azure 搜索索引器行版本的索引视图

我正在尝试设计将我的数据索引到 Azure 搜索的最佳方法。假设我的 Azure SQL 数据库包含两个表:

  • 产品
  • 订单

在我的 Azure 搜索索引中,我不仅想要产品(名称、类别、描述等),还想要该产品的订单计数(在评分配置文件中使用它,以提升搜索结果中的热门产品)。

我认为最好的方法是创建一个视图(索引视图?),其中将包含来自产品的列和每个产品的订单计数,但我不确定我的视图(索引视图?)是否可以拥有它自己的 rowversion 列,每次计数更改时都会更改(订单可能会被撤回 - 删除 - 并放置 - 插入)。

也许我的问题有一些更简单的解决方案?任何提示表示赞赏。

问候, MJ