gpt4 book ai didi

sql-server - 用于 SQL Server 中 OR 语句的最佳索引

转载 作者:行者123 更新时间:2023-12-03 22:55:05 24 4
gpt4 key购买 nike

我有一个表,它有一堆列,但两个相关的列是:

Due_Amount MONEY

Bounced_Due_Amount MONEY

我有一个像下面这样的 SQL 查询

SELECT * FROM table WHERE (Due_Amount > 0 OR Bounced_Due_Amount > 0)

为 SQL Server 2008 放置在此表上的最佳索引是包含索引中的两列的索引,还是应该在每列上放置一个单独的索引?

最佳答案

不能在这样的 OR 上使用索引。尝试这个:

SELECT * FROM table WHERE Due_Amount > 0
UNION ALL
SELECT * FROM table Bounced_Due_Amount > 0
--use "UNION" if Due_Amount and Bounced_Due_Amount could both >0 at any one time

在 Due_Amount 上有一个索引,在 Bounced_Due_Amount 上有一个索引。

重新设计你的 table 可能会更好。在不知道您的业务逻辑或表的情况下,我猜您可能有一个“Bounced”Y/N 或 1/0 char/bit 列和一个“Due_Amount”列。在该“Due_Amount”上添加一个索引,查询将是:
SELECT * FROM table WHERE Due_Amount > 0

您仍然可以区分 Bounced 或 not row。如果您需要同时拥有退回的和未退回的到期金额,这将不起作用。

关于sql-server - 用于 SQL Server 中 OR 语句的最佳索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3054642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com