gpt4 book ai didi

c# - 很多insertQuerys - 效率

转载 作者:行者123 更新时间:2023-11-30 22:12:17 27 4
gpt4 key购买 nike

我有一个静态方法可以打开到 SQL Server 的连接、写入日志消息并关闭连接。我在整个代码中多次调用此方法(平均每 2 秒一次)。

问题是 - 它有效率吗?我想也许积累一些日志并用一个连接插入它们会更好?

但是我必须将它们保存在某个地方(xml?),这也需要花费。

那么.. 执行此操作的有效方法是什么?写入 xml\file\whatever,然后在一个连接中批量更新或为任何小更新打开连接?

public static bool writeLog(string TaskName="MainApp", string LogMessage=null)      
{
string logCmd = ...
OleDbConnection conn = ...
OleDbCommand sqlCmd = new OleDbCommand(logCmd,conn);
try
{
conn.Open();
sqlCmd.ExecuteNonQuery();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.ToString());
Console.ReadLine();
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return isSuccses;
}

最佳答案

很难说出您对效率的期望是什么,但这里有一个一般性的评论。

每2秒插入一条记录,即使你每次都打开一个连接,SQL Server肯定可以毫无问题地处理。您一次插入一条记录,甚至不会出现明显的锁定问题等。

如果您要更改架构,维护数据完整性会变得更加复杂和困难(您必须将值存储在某种缓存中并确保该缓存不会丢失,等等)。在这种情况下,这似乎没有必要。


顺便说一句,您可能希望切换到 native SQL Server 提供程序并使用 SQLConnection 来提高性能。

关于c# - 很多insertQuerys - 效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19778565/

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