ASP.NET 的 GridView 控件、SqlDataSource 和 ObjectDataSource 控件,其内建的「数据分页 (pager)」功能,默认做法,是当 user 每次单击 GridView 的页码换页时,都重新去数据库里,把数据表的「所有」数据,「全部」重新 SELECT 一次,并「全部」传送至 AP server (IIS),并将大量数据「全部」存储至 memory 里的 DataSet / DataTable,再将「所有」的数据,在 memory 里做分页处理后,再「全部」传送至 user 的浏览器中,最后才呈现在 GridView 控件中;因此当数据表累积了很多笔记录后,例如一百万笔 record 时,因为 user 每次换页或按 GridView 的字段 title 排序时,背后运作,都是把一百万笔 record「全部」重新 SELECT 一次,因此就会在:数据库 → IIS、DataSet → GridView 时,出现严重的 performance 问题,且会浪费大量网络频宽,浪费大量 DB server、AP server 的 CPU、memory 硬件资源;当多人同时上线时问题更严重,甚至会造成 server 当机。用视图来做,最好对这个表做个索引这样可以加快查询速度