gpt4 book ai didi

c# - 我应该使用临时表还是持久表在 MSSQL 中暂存和合并数据?

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

我有一个表格,需要填充很多行,每小时大约数百万行。

现在我有一个使用 Entity Framework 在 C# 中开发的应用程序,它不支持批量复制。我之前开发了一个使用批量复制的解决方案,它显着提高了性能。

我一直在将数据复制到暂存表,然后将暂存表与生产表合并,以解决 UNIQUE 约束冲突。

现在我今天的问题是,我是否应该在存储过程中使用临时表作为变量并在那里进行所有合并和冲突解决?在当前的解决方案中,我们执行批量复制,然后调用合并和清空表的存储过程。

使用临时表会有什么样的性能影响?

使用临时表是否被认为是一种不好的做法?如果是,为什么?

MSSQL 2012 中是否有替代方案可以很好地用来解决这个问题?

最佳答案

should I be using a temporary table as a variable inside the stored procedure and do all of the merging and conflict resolution there?

我认为最好使用临时表来避免并发执行存储过程的问题,因为过程的不同实例可以尝试读取和修改相同的行。

What kind of performance effects would it have to use the temporary table?

临时表(以及表变量)存储在 tempdb 中,因此您可能会在那里遇到瓶颈。

Is it considered a bad practice at all to use the temporary table?

没有。但是使用它们没有必要你做额外的写入和读取操作,因为首先你通过一些查询读取数据,将它写入临时表然后再读取数据一次。

关于c# - 我应该使用临时表还是持久表在 MSSQL 中暂存和合并数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13304309/

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