具有大量数据集的ASP.NET和SQL服务器

我正在ASP.NET中开发一个Web应用程序,在一个页面上,我正在使用带分页的ListView。作为测试,我填充了表格,它从600万行中抽取。 该表和基于它的模式绑定视图具有所有必需的索引,并在SQL Server Management Studio中执行查询,其中SELECT TOP 5返回<如预期的那样1秒。 但是在ASP.NET页面上,使用相同的查询,似乎没有任何限制地选择所有600万行。分页控制不应该限制查询只返回N行而不是整个数据集吗?如何使用这些ASP.NET控件来处理包含数百万条记录的大量数据集?对于ListView来说,
SELECT [columns] FROM [tablename]
是否真的意味着它并没有实际注入一个
TOP <n>
并且在应用程序级别而不是数据库级别进行所有分页?     
已邀请:
启用分页时,分页控件,数据源,网格等将限制控件显示的行数。但是,它们肯定不会限制SELECT语句返回的行数。 您应该使用DataObjectSource作为控件的数据源,并让它调用一个类方法来执行只返回必要行的SELECT语句。否则,你的表现会很糟糕。 不幸的是,SQL Server不支持任何类型的RANGE子句,并且所需的SQL不是很漂亮。但这绝对是必要的。 http://www.asp.net/data-access/tutorials/efficiently-paging-through-large-amounts-of-data-cs     

要回复问题请先登录注册