![]() |
1
4
存储过程不会比参数化SQL更快。在我的应用程序中,比起硬编码SQL,我更喜欢使用存储过程,但是如果要生成insert语句,那就更好了。 如果您认为可能会丢失数据,那么使用缓冲区是一个好主意。如果您希望将客户机与插入分离,并且希望它是持久的,那么可以使用msmq。然后您可以编写一个处理队列的Windows服务,它将与应用程序完全分离。如果您有一个服务器场,那么它还可以从多个服务器聚合日志。 |
![]() |
2
5
Log4NET 将跟踪转储到一个SQL数据库,其中包含一整堆刷新选项等。 检查一下: http://logging.apache.org/log4net/release/features.html log4net已被证明。如果你能避免“写轮子”,那就好了,对吧? |
![]() |
3
1
我不能说SP是否比ADO插入更快,但我总是建议在应用程序中保留查询/非查询,而不是在数据存储中。正如您现在所看到的,数据存储是为了数据,而不是逻辑。避免SPS。 MS SQL Server是一个复杂的机器,我认为您的应用程序不会导致代码阻塞,从而导致过多的日志记录到您的数据库中。显然,这取决于您的特定实现,并且出于您对性能的兴趣,我假设您打算支持大容量。我的意思是,我认为您不需要内存中的队列或服务来包装日志记录过程。只需将跟踪刷新到ASPNET应用程序中的数据库,然后忘记缓存/刷新。SQL将负责将日志查询保存在内存中,并负责将其写入磁盘——事实上,它管理得非常好。SQL的查询缓冲区将确保您的代码不会在刷新跟踪时阻塞。如果你不相信我,用调试窗口中的时间戳或其他东西来测试它。如果您确实需要调整它,那么调整应该在数据库的内存设置中。你不需要在这里发明一个包装器,使用SP或者在你的服务器上启动另一个服务(比如msmq),这只会占用你宝贵的CPU和MEM。 |
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
|
Dansih · .Net核心自定义身份验证方案 2 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 2 年前 |