有关索引的SQL问题。如何调用我创建的索引

时间:2020-07-08 04:30:31

标签: sql indexing rdbms

如何在SQL中调用为表创建的索引?

例如,我创建了一个索引:

CREATE INDEX idx_pname ON Persons (LastName, FirstName);

我怎么称呼它?

3 个答案:

答案 0 :(得分:2)

索引是背景数据结构,不能直接调用。如果查询发现索引是以最佳方式获取数据的好方法,则查询将在内部使用它们来获取数据。

如果要强制查询优化器利用索引,则可以使用索引提示。下面是一个示例。

SELECT FirstName,LastName FROM Persons WITH (INDEX = idx_pname )

但是,我总是建议不要使用索引提示,因为它会带来很多问题。

  • 当统计信息也发生变化时,强制索引将导致性能问题
  • 如果删除了索引,查询将不起作用

但是,如果要查看表中存在哪些索引,可以使用sp_help查看表信息。

EXEC sp_help 'dbo.Persons'

此外,您可以使用sp_helpindex

EXEC sp_helpindex 'dbo.Persons'

More on sp_helpindex

答案 1 :(得分:1)

感谢您的回答。我了解了因此,基本上,如果索引被调用,数据库将使用索引。这对于查询搜索优化很有用。如果我们觉得索引被调用得更多或将被更频繁地使用,我们将简单地创建一个索引。

答案 2 :(得分:1)

在属于数据库表的字段上定义的索引是数据库架构的一部分,并且定义索引的目的是加快索引的字段根据索引定义按特定的排序顺序查找并加快从数据库表进行数据检索操作的性能。一旦找到匹配的记录,搜索就会停止。因此,作为查询执行计划的一部分,将根据选择的查询定义来应用索引。

要确定是否在选择操作中使用索引,请使用解释语句

EXPLAIN SELECT statement