【问题标题】:sql database index doesn't worksql数据库索引不起作用
【发布时间】:2012-03-28 13:41:01
【问题描述】:

我正在使用 Sql 数据库并且我已经索引了一些表。在某些表中,索引有效,但是在我通常使用 order by 子句的表之一中有一个整数列,我已经对其进行了索引,但我可以在执行计划窗口中看到它没有被 Sql 使用,无论我尝试什么。 请问有人知道吗?

【问题讨论】:

  • 您能否展示查询、表格、解释计划,告诉我们表格包含多少行以及您正在使用什么 dbms?
  • 很可能已经在使用其他索引。
  • 如果您的索引没有覆盖(包括查询中的所有列),DBMS 可能决定改为进行表扫描,这是正确的
  • 我的表中有 50 万条记录。我正在使用 sql server 数据库。我无法涵盖所有​​列,因为其中之一是文本类型。我认为这可能是问题所在?

标签: sql indexing


【解决方案1】:

仅仅因为它没有被使用并不意味着它不起作用。 SQL Server 将分析您的查询并决定使用索引是否是一个好主意。

也许如果您发布表格和索引,我们可以为您提供更多帮助。

【讨论】:

    【解决方案2】:

    一种解释是您的列上没有not null 约束。

    索引不包含空键,因此您的索引可能不包含表的所有行。因此,引擎无法使用它,因为它不确定所有值都会在其中,并且会进行表扫描。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-26
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多