我有我的asp.net页面上的大型数据集和数据网格。我打算让用户可以过滤原始数据集。什么是最好的方法?我应该使用linq来过滤数据集或继续使用sql,还是有更好的方法使用vb.net与asp.net。SQL过滤,哪种方法最好?
回答
......“这取决于”
你说你是在谈论一个“大数据集”。
如果它真的很大,那么你不应该显示给用户。您还应该考虑将其存储在IIS中可能会降低性能。你想要一个小而快的页面。所以我认为它不好发送每页50多条记录给用户(它总是取决于记录是什么)
你应该考虑创建一些SQL,它允许你在结果中做一些分页,传送那些。如果你想尝试在代码中对其进行分类,那么你可能会在你的客户端获得大量的数据。而sql server的主要目的是对数据进行排序和存储。所以让它做他的工作。您还必须考虑使您缓存的任何数据无效,这可能会成为一个挑战。看看漂亮的LINQ函数,如Skip(30).Take(10)...
另一方面,如果你有一些是静态的,那么你可能会从客户端上兑现它,或一个web服务。
使用IIS会减慢页面的速度? 和我不能使用分页,但是如果我使用json或xml,因为我需要使用数据集执行算术运算,例如有一个运行总计 – MyHeadHurts 2010-11-16 18:18:30
将数据存储在请求之间的IIS内存中将导致您的应用程序无法扩展,因为您可能需要一次为多个用户保存数据。确保你加载测试你的解决方案。而查询的开销并不多。 如果您包含运行总计,那么它是一个完全不同的问题......您询问了有关筛选的信息,只有请求者知道要跳过多少项;) – 2010-11-16 18:25:18
什么是最好的方法?
这将是主观的说什么是最好的方式。我可以说的是什么会是一个坏方法:通过应用程序而不是SQL数据库来执行过滤。因此,如果Linq将Linq表示为实体,并且将查询转换为SQL语句,以便过滤由数据库执行,那么就可以。如果你的意思是Linq到对象,那么你正在过滤内存中,为了做到这一点,这意味着你已经将整个数据集加载到内存中,这是坏的。不要将任何东西加载到屏幕上不需要/显示的内存中。
因此,加载页面时加载所有值会更好。因为我的gridview是在一个updatepanel。我可以调用另一个查询并更新gridview。 – MyHeadHurts 2010-11-16 18:07:35
和linq我的意思是使用linq过滤数据集。 – MyHeadHurts 2010-11-16 18:08:26
仅当您要将它们显示在屏幕上时才加载所有值。所以你的意思是Linq的对象。那么,我个人更喜欢这样做的SQL服务器(你也可以启用缓存,以避免太多的数据库)。 – 2010-11-16 18:08:45
嗯,我个人认为,如果你已经拥有了内存中的所有数据,在内存中过滤它比在网络上进行过滤要快。因此,你不会有最新的数据更新,除非你刷新它...
但正如Darin Dimitrov所说,如果你还没有所有的数据,你应该只使用一个查询,请求必要的数据。
通过回调SQL进行过滤可能很昂贵,例如自动完成样式过滤。 通过调用回缓存数据的Web服务可以实现同样的效果。
如果您有一组用户点击“搜索”的过滤器,那么回调数据库可能是合理的,以避免在Web服务器甚至客户端缓存数据。
如果你有一个繁忙的数据库,那么你可能会回调不同的结果,所以这可以回到调用Web服务。
在这种情况下,我会考虑在没有额外数据库调用的情况下过滤Web服务。这样说,如果你有很多客户端,这可能会杀死一台Web服务器。如果二级过滤器大大减少了数据集,那么为什么要缓存呢?
不幸的是,这样我想答案是没有百达最佳途径......
我的问题是我一直想弄清楚vb.net(asp.net)中的Web服务,我不能。那就是我一直在尝试做的事情http://stackoverflow.com/questions/4169158/json -string-from-vb-net-side-to-asp-net – MyHeadHurts 2010-11-16 18:10:55
如果你能帮我解决这个问题,那就太棒了,我甚至试过了wcf – MyHeadHurts 2010-11-16 18:11:29
@NEWprogrammer:对不起,我是一个数据库猴子... – gbn 2010-11-16 18:12:51
- 1. 哪种方法最好?
- 2. java哪种方法最好?
- 3. 哪种方法最好加入mysql表?
- 4. CSS - 哪种方法更好?
- 5. 哪种解决这种游戏最好的方法是?
- 6. 推送通知 - 哪种方式最好?
- 7. 哪一种排序方式最好?
- 8. 哪种方法是最“最好的Rails练习”?
- 9. 哪种数据挖掘算法最好?
- 10. 哪种模式最好?
- 11. 哪种数据库最好
- 12. 哪种方法在SQL中的单元格内插入列表最好?
- 13. ICallbackEventHandler,HttpHandler,XMLHttpRequestObjext - 哪种方法更好
- 14. 哪种方法更好? libsvm或svmclassify?
- 15. 哪种方法签名好,为什么?
- 16. setter验证:哪种方法更好?
- 17. 哪种方法可变设置更好?
- 18. 哪种验证方法更好?
- 19. 关联范围 - 哪种方法更好?
- 20. 哪种方法更好String.equalIgnoreCase或StringUtils.equalIgnoreCase
- 21. Java设计:哪种方法好
- 22. 哪种方法更好更快 - Symfony2,Doctrine2
- 23. 哪种方法布局更好?
- 24. 哪种转换方法更好?
- 25. 哪种方法更好,为什么?
- 26. 哪种方法更好/更清洁?
- 27. 哪种方法更好,更安全?
- 28. 使用xml加载对象。哪种方法最好?
- 29. 哪种方法最好只是垂直显示2个链接?
- 30. 2种获取wp8位置的方法,哪个最好?
听起来好像你还没有在这里表达额外的需求。 (我不能使用分页)。你为什么不告诉我们你想要做什么。 – 2010-11-16 21:04:21