我有一个大约有10,000行的DataTable。我应该在哪里存储数据表[ViewState/Session/Cache]
我想存储这个数据一次为aspx页面。当用户在页面中选择不同选项时,将从已存储的DataTable中进一步选择数据。
我试过使用ViewState,但只要数据增长超过100行,性能就会下降。
我应该在哪里存储这些数据?
我有一个大约有10,000行的DataTable。我应该在哪里存储数据表[ViewState/Session/Cache]
我想存储这个数据一次为aspx页面。当用户在页面中选择不同选项时,将从已存储的DataTable中进一步选择数据。
我试过使用ViewState,但只要数据增长超过100行,性能就会下降。
我应该在哪里存储这些数据?
数据是基于每个用户还是全部用户?如果它是全局的,请使用缓存。如果它是用户特定的,传统的答案是使用会话,但这是潜在的内存使用问题等待发生。您可能需要根据需要重新查询数据库。
ViewState具有更具体的用途,并且不适合大量数据,因为所有数据均在网页中的客户端和服务器之间发送。
我敢打赌,你一定不能一起显示所有数据。
为什么你不使用分页和加载只需要的数据集,然后继续添加到会话对象,先取50个记录显示它,然后在下一页点击获取下一组50个记录。
您可以使用SP来实现此目的http://www.mssqltips.com/sqlservertip/1699/sql-server-stored-procedures-to-page-large-tables-or-queries/