如何查表是否有索引 sqlserver

发布网友 发布时间:2022-04-20 22:35

我来回答

5个回答

热心网友 时间:2022-04-08 10:14

1、本文以表pi_content为例,相应的字段为([piid] int, [seqnum] int,[phname] nvarchar(50),[content] nvarchar(MAX)),数据量为百万级。

2、启动SQLSERVER 2008,并登录。

3、启动SQLSERVER PROFILER 工具,我们当前使用这个工具主要的目的是监测SQL语句执行的性能参数。

4、在SQLSERVER 2008 R2中点击“新建查询”按钮,启动查询分析器。输入SQL查询语句,并点击“执行”。

5、切换到SQLSERVER PROFILER工具中,可以看到这条SQL语句具体的用时。

6、切换到查询分析器,选中这条SQL语句,点击鼠标右键,然后点击菜单中的“在数据库引掣优化顾问中分析查询”。

7、点击左上角“连接”,然后在弹出的登录窗口中输入相关参数并点击“连接”。 就完成查询索引优化了。

热心网友 时间:2022-04-08 11:32

直接输入 sp_help 'table名' ,会输出这个表的所有属性,在输出结果里,有一列名字是‘index_name’,就是索引名称,‘index_keys’里的值就是索引所包含的列。追问试了,没有发现列'index_name'和'index_keys'

追答sp_help 输出结果的第6个结果集,应该有的啊。
那就试试下面这句话
select b.name from sys.sysobjects a, sys.sysindexes b where a.id = b.id and a.name = table名 and b.rows 0

输出结果就是索引名字

热心网友 时间:2022-04-08 13:07

将表的设计模式打开,之后查看他的属性,里面就有索引、属性等等。

热心网友 时间:2022-04-08 14:58

Select * From Sys.Indexes
Where Object_id = Object_id('表名')

热心网友 时间:2022-04-08 17:06

Example: select * From Sys.Indexes Where Object_id = Object_id('EMS_Bgrecord');

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com