关于索引的sql问题如何调用我创建的索引

o0lyfsai  于 2021-07-24  发布在  Java
关注(0)|答案(3)|浏览(432)

如何调用在sql中为表创建的索引?
例如,我创建了一个索引: CREATE INDEX idx_pname ON Persons (LastName, FirstName); 我怎么称呼它?

vdgimpew

vdgimpew1#

索引是后台数据结构,不能直接调用。如果查询发现索引是以最佳方式获取数据的好方法,则它们将在内部由查询用于获取数据。
如果要强制查询优化器利用索引,可以使用索引提示。下面是一个例子。

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

但是,我总是建议不要使用索引提示,因为它会带来很多问题。
当统计信息也发生变化时,强制索引将导致性能问题
如果删除索引,查询将无法工作
但是,如果您想查看表上存在哪些索引,可以使用 sp_help 查看表格信息。

EXEC sp_help 'dbo.Persons'

另外,你可以使用 sp_helpindex ```
EXEC sp_helpindex 'dbo.Persons'

有关sp\u帮助索引的详细信息
xriantvc

xriantvc2#

谢谢你的回答。我已经明白了。因此,基本上,如果需要调用索引,数据库会使用索引。这对于查询搜索优化非常有用。如果我们觉得它被调用的次数更多或者使用的频率更高,我们只需要创建一个索引。

oyjwcjzk

oyjwcjzk3#

在属于数据库表的字段上定义的索引是数据库模式的一部分,定义索引的目的是加速数据库表中数据检索操作的执行,因为索引字段根据索引定义按特定的排序顺序进行查找,并且一旦找到匹配的记录,搜索过程就会停止。因此,作为查询执行计划的一部分,索引是根据select查询定义应用的。
要确定是否在select操作中使用索引,请使用explain语句

EXPLAIN SELECT statement

相关问题