在数据库上进行多重计算的最佳方法(.NET 2.0 VB)
是创建大量 SQL 语句更好,还是在 asp .NET 中缓存数据并从那里操作数据更好?
干杯
Is it better to create lots of SQL statements or to cache the data in asp .NET and manipulate the data from there?
cheers
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这取决于计算的内容,即是否可以在 SQL 中轻松完成,每台服务器上的负载等。如果数据库服务器负载不大,并且 Web 服务器则在数据库端进行计算反之亦然。
对于每一种情况,没有一个答案。
It depends on what the calculations might be ie if it can even be done easily in SQL or not, what the load is on each server, etc. If the database server isn't under much load and the webserver is then do it DB side and vice versa.
There is no one answer for every case.
您不应该将数据读取器存储在缓存中,它可能会导致垃圾收集问题并保持打开的数据库连接。 每次处理数据都应该是一个进入/退出的过程。
You shouldn't store datareaders in cache, it can cause problems with garbage collection and hold open database connections. Working with data should be a get in/get out process each time.
这实际上取决于应用程序、环境、数据和计算类型。 如果没有更多信息,就没有很好的方法来回答这个问题。
It really depends on the application, the environment, the data you and the types of calculations. There is no great way to answer this without more info.
考虑是否要保存通过网络发送的任何内容。 例如,如果您需要聚合数据(计数、总和等),通常最好让 sql 服务器处理它。 这样您只需发送一小部分信息。 尝试将它们加入同一个数据库调用中,这样您就不会以多次往返结束(由于延迟,这实际上会是最糟糕的情况)。
如果您仍出于其他原因提取所有数据,那么您可以通过在应用程序级别执行此操作来节省 SQL Server 上的一些处理。 这可以让您更好地分散负载。
Consider whether you will save anything on what will be sent over the network. For example, if you need to aggregate data (count, sum, etc) you are usually better of letting the sql server handle it. This way you only send a small bit of info. Try to join them in the same db call, so you don't end with multiple roundtrips (which would be actually worst because of the delays).
If you will still be pulling all the data for other reasons, then you might save some processing on the sql server by doing it at the application level. This lets you spread the load better.