gpt4 book ai didi

c# - 判断 SqlTransaction 是写入数据还是只读

转载 作者:太空狗 更新时间:2023-10-30 01:04:39 24 4
gpt4 key购买 nike

我要开始说我很确定这是不可能的。谷歌搜索没有发现任何人问这个问题,所以我悲观地希望。

我正在使用 SqlTransaction 连接到数据库,并在我关闭它之前允许多个消费者使用该事务。是否可以确定事务是否仅用于读取数据或读取/写入数据,即使可能已使用存储过程?是否存在可以检查这一点的某些属性或 SQL 方法(除了执行一些邪恶的差异)?

最佳答案

sys.dm_exec_sessions有一列 writes。你可以这样查询:

SELECT writes FROM sys.dm_exec_sessions WHERE session_id = @@SPID

不过,这会增加一些开销。我认为 DMV 在运行的 session 数上是 O(N)。 session 越多,系统的速度就会越慢。最终它变成了负缩放的情况。

请注意,这是每个 session 的值。如果每个 session 有多个事务(每次打开 SqlConnection 对象),将累积跟踪写入。您需要考虑到这一点,或者在其他答案中使用这个想法。

关于c# - 判断 SqlTransaction 是写入数据还是只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22488381/

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