gpt4 book ai didi

SQL 性能(替换)

转载 作者:搜寻专家 更新时间:2023-10-30 21:41:02 28 4
gpt4 key购买 nike

我有一个包含大约 400,000 多行的表。我正在编写一些模式匹配代码,但在我这样做之前需要清理一列。这归结为执行类似替换的操作。

我尝试一次将它们全部列出...

 Update T_ADDRESS set ADDR_LINEONE = REPLACE(ADDR_LINEONE,' southeast ',' se ')
Update T_ADDRESS set ADDR_LINEONE = REPLACE(ADDR_LINEONE,' southwest ',' sw ')

因为我有超过 500 个这样的......花了太长时间。

现在我正在尝试嵌套它们...

 Update T_ADDRESS set ADDR_LINEONE = REPLACE(REPLACE(ADDR_LINEONE,' southwest ',' sw '),' southeast ',' se ')

但这仍然很慢。我需要使此代码适用于各种大小的表(1 条记录到 500 万条记录)。

有人有什么建议吗?顺便说一下,我正在使用 SQL Server。

最佳答案

无论你多么喜欢替换,你都必须始终端到端地扫描表格。这是降低性能的原因,并且无法更改,因为您必须以任何合理的方式为 ADDR_LINEONE 字段编制索引。

由于这应该是一次性操作,所以时间长短无关紧要。

如果这是一个重复的操作,那么你的问题不在这里,而是你如何将数据加载到表中:在保存数据之前进行转换,否则你就没有机会了。

关于SQL 性能(替换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628764/

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