0

我想找到最快的方法(处理数千行)来执行以下查询:

我有一个名为“Flights”的 SQL Server 表。这是表的结构:

  • ID : 线路标识
  • FlightDate : 行日期
  • IsLastLineOfPage :如果该行是页面的最后一行,则位等于 1
  • ID_User :与另一个用户表链接

我想找到一个非常快速的查询来选择所有列,按日期和 ID 排序,两个新列名为“RowNumber”和“PageNumber”。这就像一个分页,每页有 5 行。如果 IsLastLineOfPage = 1,则即使页面未满,下一行“PageNumber”也必须递增,并且“RowNumber”重置为 1。例如查询 WHERE ID_User=5 的结果:

链接在这里:http: //i.stack.imgur.com/vyZh6.png

我不知道要这样做……谢谢!

4

1 回答 1

0

由于结果集是有序的,因此它可能永远不会很快。确保事情尽可能快的一种方法是确保尽可能少的行具有完全相同的日期。向用于排序的列添加索引也可能会有所帮助。要获得结果(取决于您使用的语言/SQL 驱动程序),最好使用结果集游标。游标在服务器上收集结果,但一次只将它们发送回客户端一页。您通常可以指定页面大小。但是,这是如何完成的是特定于语言和驱动程序的。

于 2013-05-06T20:48:31.013 回答