gpt4 book ai didi

c# - T-SQL 查询超时/性能问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:10 25 4
gpt4 key购买 nike

我有一张大约有 100 万条记录的表。表结构如下所示。 UID 列是主键和唯一标识符类型。

Table_A(包含一百万条记录)

UID                                            Name
-----------------------------------------------------------
E8CDD244-B8E4-4807-B04D-FE6FDB71F995 DummyRecord

我还有一个函数叫做 fn_Split('Guid_1,Guid_2,Guid_3,....,Guid_n')接受逗号列表
分离 guid 并返回一个包含 guid 的表变量。

从我的应用程序代码中,我传递了一个 sql 查询以获取新的 guid [与应用程序代码一起但不在数据库表中的键]
var sb = new StringBuilder();
sb
.Append(" SELECT NewKey ")
.AppendFormat(" FROM fn_Split ('{0}') ", keyList)
.Append(" EXCEPT ")
.Append("SELECT UID from Table_A");

第一次执行此命令时,它会在很多情况下超时。我试图找出什么是更好的方法来避免这种超时和/或提高性能。

谢谢。

最佳答案

如果没有,首先在 table_a.uid 上添加一个索引,但我假设有。

尝试一些替代查询,

select newkey 
from fn_split
left outer join table_a
on newkey = uid
where uid IS NULL


select newkey
from fn_split(blah)
where newkey not in (select uid
from table_a)

select newkey
from fn_split(blah) f
where not exists(select uid
from table_a a
where f.newkey = a.uid)

关于c# - T-SQL 查询超时/性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4383136/

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