问题标签 [filtered-index]
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.
sql-server-2008 - SQL Server 2008 中的筛选索引
我在我的一个数据库表中创建了过滤的唯一索引。根据我的研究,如果我想从 asp.net 对该表进行任何操作,我需要打开以下设置操作到我的连接
如果我打开上述功能,会产生什么效果?它会导致任何问题吗?还有其他更好的选择吗?
提前致谢
sql-server - 过滤索引与普通非聚集索引
我在一个表中有 2.7 亿条记录。目前我在日期列上有一个非聚集索引。99% 的时间我使用日期 > 2008 年 1 月 1 日的行......这意味着其中有 1.4 亿。我正在使用 SQL Server 2008。在这种情况下,使用过滤索引而不是普通的非聚集索引是否有益?
此外,如果我使用“日期”数据类型而不是“日期时间”,它有多大用处?
提前致谢 !
sql-server - 使用过滤索引内外的数据进行查询
如果我有一个过滤索引,并且如果我使用超出该范围的数据,会产生什么样的性能损失?
sql-server - Oracle 有过滤索引的概念吗?
类似于 SQLServer,我可以在其中执行以下操作
filtered-index - SQLSERVER 2008 R2 使用过滤索引
是真的,使用过滤索引时 QUOTED_IDENTIFIER 将设置为 ON 吗?我知道在计算列上使用索引视图或索引时必须如此。
sql - SQL 过滤索引:我是否应该始终对可选列的索引进行过滤?
对于“大”表,是否有任何理由不对可选列的索引进行过滤?
所以对于列 AAA 的索引(因为人们可以在 AAA 上搜索),
我可以将过滤器设置为([AAA] IS NOT NULL)
.
这样可以节省存储空间,因此可以节省资金。
technet的更多优势:
- 提高查询性能和计划质量
- 降低索引维护成本
- 降低索引存储成本
人们说最好对大部分为空的列的索引进行过滤。但是为什么我不对空列的索引进行过滤,比如 1% 呢?如果它只有优点,有什么理由不做吗?
sql-server-2008 - 优化器忽略过滤的索引条件
假设我正在运行一个显示有趣猫图片的网站。我有一个名为CatPictures
、 和 列的表Filename
,Awesomeness
以及DeletionDate
以下索引:
我的主要查询是这样的:
我作为一个人,知道上面的索引就是SQL Server所需要的,因为索引过滤条件已经保证了DeletionDate is null
部分。
然而,SQL Server 不知道这一点;我的查询的执行计划不会使用我的索引:
即使添加索引提示,它仍然会DeletionDate
通过查看实际表数据来显式检查:
(此外还抱怨缺少包含 的索引DeletionDate
)。
我当然可以
相反,它将起作用:
但是包含该列似乎是一种浪费,因为这只会占用空间而没有添加任何新信息。
有没有办法让 SQL Server 知道过滤条件已经在做检查工作DeletionDate
?
sql-server-ce - SQL Server Compact 筛选索引
任何版本的 SQL Server Compact 都支持筛选索引吗?
tsql - 是否可以使用过滤索引作为提示来优化 SELECT COUNT(*) 查询以实现恒定速度?
我想计算所有不紧急且订单状态 = 1(已发货)的订单。
这应该是一个非常简单的优化查询。我想在 Orders 表上放置一个简单的过滤索引来覆盖这个查询,使其成为一个恒定的时间/O(1) 操作。但是,当我查看查询计划时,它似乎使用了没有意义的索引扫描。理想情况下,此查询应该只返回索引中的项目数。
该表如下所示(简化为本质):
我创建了这个过滤索引:
现在,当我执行此查询时:
我看到查询计划正在使用 IX_Orders_ShippedNonUrgent,但它正在执行索引扫描并在约 150,000 行订单中执行大约 200 次读取。
假设过滤的索引保持最新,是否可以始终让此查询在恒定时间内运行?理想情况下,它应该只执行 1 次读取来获取索引的大小。
如果我切换到这样的非过滤索引:
查询计划使用 Index Seek,但仍然执行比回答这个简单查询所需的更多的读取。
更新
我能够做到这一点
并在 9 次读取中获得结果,但似乎应该有一种更简单、更简单的方式来使用简单的 COUNT(*) 查询。
sql-server-2008 - SQL Server 2008 上的筛选索引删除/插入失败?
我创建了一个具有默认设置的存储过程,例如:
没事。然后我在一个表上为 DB 中的非空值创建了一个过滤的唯一索引,然后我不能再在 SQL Server Management Studio 中运行任何存储过程。我得到的错误是这样的:
DELETE(或 INSERT)失败,因为以下 SET 选项的设置不正确:'ANSI_NULLS,QUOTED_IDENTIFIER'。验证 SET 选项对于索引视图和/或计算列上的索引和/或过滤索引和/或查询通知和/或 XML 数据类型方法和/或空间索引操作是否正确。
我尝试运行存储过程,例如:
或者
我仍然得到上述错误。我很困惑。如何解决这个问题?