我正在Winforms中构建一个应用程序。这将与DB(oracle)对话并加载大量数据(仅供查看)。除了缓存和分页之外,还有其他要考虑的问题吗?性能是一个问题,但考虑用户计算机上有限的内存也是如此。
感谢。
编辑 - 其他信息:我还可以选择构建一个java soap服务来充当中间层。这会有帮助吗?
答案 0 :(得分:6)
如果您正在进行分页,则没有理由“通过网络”传输大量数据。您只需查询当时正在查看的数据,并可能需要缓存下一页以查看用户性能。
例如:假设您有一个包含1,000,000行和20列的表,这些表对用户可见,并且您希望一次在屏幕上显示50行。当您显示数据网格时,您应该只带走这些行的一部分(介于50和几百之间)。这是在Intranet上传输的数据量可以忽略不计,当然也不会影响用户内存。即使您缓存了200行,这仍然是<200KB的数据要本地存储并通过Intranet传输,这需要几毫秒。
答案 1 :(得分:2)
您可能还想考虑报告,审核和安全
通常,用户不会遍历一百万行,而是使用某种报告来汇总或查询信息。
根据您的要求,您可能需要有关数据如何进入数据库的全面审计跟踪,甚至是谁已经查看过它。
最后,您可能需要确保只有有效用户才能看到相关数据。 这可能会对您的数据库结构产生影响,并且几乎肯定会对您的应用程序架构产生影响。
答案 2 :(得分:0)
此时仅请求您需要的内容,并仅发回实际更改的内容。人们经常使用ORM并将整个对象从服务器中拉下来。然后他们将整个对象发送回服务器,只有一小部分已经改变。
其中一些取决于您的ORM,但很多都取决于您,以及您如何使用ORM。推测性缓存可能很有用,但只有在您非常确定需要数据时才有用。首先请求尽可能少,然后再开始工作。
答案 3 :(得分:0)
如果您需要多次选择来构建数据模型,而是在存储过程中完成所有工作。这将减少网络流量,并让Oracle做自己擅长的事情。祝你好运。