Sql server 为Azure SQL Server中的最新/最后一行优化表

Sql server 为Azure SQL Server中的最新/最后一行优化表,sql-server,azure,indexing,query-optimization,azure-sql-database,Sql Server,Azure,Indexing,Query Optimization,Azure Sql Database,我在MS Azure SQL DB上有一个表,其中有60000行,使用SELECT语句执行该表的时间开始延长。第一列是“ID”列,它是主键。到目前为止,没有其他索引。关于这个表的一点是,这些行是基于最近的新闻文章,因此表中最后一行的访问量总是比以前的行要多 如果可能的话,在执行SELECT操作时,如何让SQL Server在表的末尾开始反向查询 另外,如何使用索引以加快表的读取速度,并将最后一行作为优先级?通常,SQL Server查询优化器将根据可用索引、数据分布统计和查询选择数据访问策略。例

我在MS Azure SQL DB上有一个表,其中有60000行,使用SELECT语句执行该表的时间开始延长。第一列是“ID”列,它是主键。到目前为止,没有其他索引。关于这个表的一点是,这些行是基于最近的新闻文章,因此表中最后一行的访问量总是比以前的行要多

如果可能的话,在执行SELECT操作时,如何让SQL Server在表的末尾开始反向查询


另外,如何使用索引以加快表的读取速度,并将最后一行作为优先级?

通常,SQL Server查询优化器将根据可用索引、数据分布统计和查询选择数据访问策略。例如,SQLServer可以向前、向后、物理顺序等扫描索引。选择取决于许多变量

在您的示例中,如果表中有一个日期/时间列,那么您可以在谓词中索引并使用该列。这将自动启用该索引的使用,如果该索引是最有选择性的索引


或者,您可以基于列对表进行分区,并基于分区键访问最新数据。这是滚动窗口分区的常见用法。使用这种方法,查询中的谓词将指定分区列,这将帮助优化器选择要扫描的正确分区集。这将大大减少需要搜索的数据量,因为分区消除是在执行之前根据查询计划进行的。

您可以发布DDL吗?如果您有datetime列。。。为该列编制索引,并确保where子句中有该字段。如果你不。。。添加一个并为该文件创建索引。wewesthemenace-我会这样做,但每当我单击“创建到”菜单选项时,SSMS都会抛出“指定的强制转换无效。(Microsoft.SqlServer.Smo)”错误。我会的。我现在没有。谢谢