如何调用在sql中为表创建的索引?例如,我创建了一个索引: CREATE INDEX idx_pname ON Persons (LastName, FirstName); 我怎么称呼它?
CREATE INDEX idx_pname ON Persons (LastName, FirstName);
vdgimpew1#
索引是后台数据结构,不能直接调用。如果查询发现索引是以最佳方式获取数据的好方法,则它们将在内部由查询用于获取数据。如果要强制查询优化器利用索引,可以使用索引提示。下面是一个例子。
SELECT FirstName,LastName FROM Persons WITH (INDEX = idx_pname )
但是,我总是建议不要使用索引提示,因为它会带来很多问题。当统计信息也发生变化时,强制索引将导致性能问题如果删除索引,查询将无法工作但是,如果您想查看表上存在哪些索引,可以使用 sp_help 查看表格信息。
sp_help
EXEC sp_help 'dbo.Persons'
另外,你可以使用 sp_helpindex ```EXEC sp_helpindex 'dbo.Persons'
sp_helpindex
有关sp\u帮助索引的详细信息
xriantvc2#
谢谢你的回答。我已经明白了。因此,基本上,如果需要调用索引,数据库会使用索引。这对于查询搜索优化非常有用。如果我们觉得它被调用的次数更多或者使用的频率更高,我们只需要创建一个索引。
oyjwcjzk3#
在属于数据库表的字段上定义的索引是数据库模式的一部分,定义索引的目的是加速数据库表中数据检索操作的执行,因为索引字段根据索引定义按特定的排序顺序进行查找,并且一旦找到匹配的记录,搜索过程就会停止。因此,作为查询执行计划的一部分,索引是根据select查询定义应用的。要确定是否在select操作中使用索引,请使用explain语句
EXPLAIN SELECT statement
3条答案
按热度按时间vdgimpew1#
索引是后台数据结构,不能直接调用。如果查询发现索引是以最佳方式获取数据的好方法,则它们将在内部由查询用于获取数据。
如果要强制查询优化器利用索引,可以使用索引提示。下面是一个例子。
但是,我总是建议不要使用索引提示,因为它会带来很多问题。
当统计信息也发生变化时,强制索引将导致性能问题
如果删除索引,查询将无法工作
但是,如果您想查看表上存在哪些索引,可以使用
sp_help
查看表格信息。另外,你可以使用
sp_helpindex
```EXEC sp_helpindex 'dbo.Persons'
xriantvc2#
谢谢你的回答。我已经明白了。因此,基本上,如果需要调用索引,数据库会使用索引。这对于查询搜索优化非常有用。如果我们觉得它被调用的次数更多或者使用的频率更高,我们只需要创建一个索引。
oyjwcjzk3#
在属于数据库表的字段上定义的索引是数据库模式的一部分,定义索引的目的是加速数据库表中数据检索操作的执行,因为索引字段根据索引定义按特定的排序顺序进行查找,并且一旦找到匹配的记录,搜索过程就会停止。因此,作为查询执行计划的一部分,索引是根据select查询定义应用的。
要确定是否在select操作中使用索引,请使用explain语句