gpt4 book ai didi

sql - 意外表扫描 id != id

转载 作者:行者123 更新时间:2023-12-02 09:01:51 26 4
gpt4 key购买 nike

一个应用程序导致我们的 Sql Server 2005 数据库负载过重。 我们无法控制每分钟运行此查询数百次的应用程序:

select id,col1,col2,col3 from table where id != id

请注意id != id,这意味着一行不等于其自身。不出所料,结果始终是找不到行。但是,Sql Server 每次运行此查询时都会进行聚集索引扫描!

id 列定义为:

varchar(15) not null primary key

查询计划显示“估计行数”的数字很大。有谁知道为什么 Sql Server 需要表扫描来找出明显的问题吗?

最佳答案

我会伪造这个查询...用 View 抽象出来,然后欺骗查询。

将现有表“table”重命名为“table_org”或其他名称,然后创建一个如下所示的 View :

CREATE VIEW table
AS
SELECT * FROM table_org
WHERE id='BOGUSKEY'

现在,您应该对主键上的表进行第一次扫描,并且它应该(就像原始查询一样)什么也找不到。应用程序一无所知...

关于sql - 意外表扫描 id != id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/872195/

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