查找没有索引的表,第1张

查找没有索引的表,第2张

索引是提高SQL Server性能的关键。也许您已经接管了一台新的SQL Server,它属于其他部门或者您的公司急于提高当前SQL Server的性能。无论如何,我们必须完成的首要任务之一是查看那些不包含索引的表是否存在。

您打开两个系统表:sysindexes和sysobjects,并查找这些信息。这个系统表sysobjects用于查找表对象并获取表对象名。Sysobjects表Xtype列有一个“U”可分辨用户表。sysobjects表的Id列作为OBJECTPROPERTY()系统函数的参数,查找没有索引的表。第二个参数的值为TableHasIndex。是一个系统功能。如果返回0,则表示表中没有索引。其他系统表sysindexes用于获取表中的行数。Sysindexes系统表有一个indid列,当indid的值为0时,表示是表而不是索引。Sysindexes表用于获取表中各行的每一列的值。表中的行数越多,表的访问频率越高,这决定了索引表以提高性能的优先级。

以下查询用于查找没有索引的表:

选择(选择si.rows

来自sysindexes si

其中si.id = so.id且indid = 0)行

,so.name

来自sysobjects so

其中so.xtype = 'U '

而OBJECTPROPERTY(so.id,' TableHasIndex' ) = 0

由1 DESC订购

通过使用相同的查询,可以使用TableHasClusteredIndex而不是TableHasIndex属性来查找那些没有索引簇的表。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 查找没有索引的表

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情