use*_*364 2 sql-server indexing query-optimization azure azure-sql-database
我在MS Azure SQL DB上有一个表,其中有60,000行,使用SELECT语句开始执行的时间更长.第一列是"ID"列,它是主键.截至目前,没有其他指数.关于这个表的事情是行是基于最近的新闻文章,因此表中的最后一行总是比旧行访问更多.
如果可能的话,当我执行SELECT操作时,如何告诉SQL Server在表结束时开始查询?
另外,我可以用索引做什么来更快地从表中读取并将最后一行作为优先级?
小智 5
通常,SQL Server查询优化器将根据可用索引,数据分布统计信息和查询选择数据访问策略.例如,SQL Server可以向前,向后,物理顺序扫描索引等.选择是基于许多变量确定的.
在您的示例中,如果表中有日期/时间列,则可以在谓词中对其进行索引和使用.如果该索引是最具选择性的索引,则会自动启用该索引.
或者,您可以根据列对表进行分区,并根据分区键访问最新数据.这是使用滚动窗口进行分区的常见用法.使用此方法,查询中的谓词将指定分区列,这将有助于优化器选择要扫描的正确分区集.这将大大减少需要搜索的数据量,因为根据查询计划,在执行之前发生分区消除.
归档时间: |
|
查看次数: |
82 次 |
最近记录: |